码迷,mamicode.com
首页 > 系统相关 > 详细

笔记-linux系统用户与组

时间:2016-08-03 15:38:17      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:linux   用户      

技术分享

前言

为什么创建用户和组

用户和组的分类

用户和组主要配置文件

用户管理

组管理



前言

资源分派的3A认证

Authentication:认证   确认身份

Authorization:授权    给什么样的权限

Accouting|Audition:审计  记录行为



为什么创建用户和组


用户

在linux系统中认证是用用户来验证。

用户名+口令=令牌 有了不同等级的令牌就可以出入不同的关卡。

在系统中每一个用户都有自己的一个id号·这个id号是系统用来标识用户的主要凭证


组group

基于某种特定联系将多个用户集合在一起,即构成一个用户组

组可以方便几个用户使用同样的权限,方便了管理多个用户

在linux系统中创建用户的时候就默认创建同名的用户的组

而在windows中是不允许的!

当访问一个文件是否能够访问权限是通过用户来决定的




用户和组的分类


用户分类: 

管理员用户:root

UID :0

系统用户:1-499(centos6),1-999(cetnos7) 对守护进程获取资源进行权限分配

普通用户:501-65535(cetnos6),1000-65535(centos7) 交互式登录

 

组的分类:

主组(也叫基本组):创建用户在没有添加任何参数的时候自动创建同名主组,用户只能属于或者只能有一个主组

辅助组:用户除了在主组之外的其他组叫做附属组,一个用户可以属于零个或多个辅助组

组也有相对应的标识id号 Gid

默认管理员root组:root

GID  :0

系统用户组:1-499(centos6),1-999(cetnos7)

普通用户组:501-65535(cetnos6),1000-65535(centos7)



用户和组主要配置文件


1.用户属性文件

/etc/passwd 

是一个文本文件,包含了用户名及其一系列的用户属性(包括用户UID,GID,描述信息等)

[root@centos6 testdir]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin
rtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin
#以上是文件部分内容
#下面对用户属性文件格式做一个了解
root:x:0:0:root:/root:/bin/bash
root          #用户名
:x           #用户密码(由于一些安全因素,此处不记录密码)
:0           #用户UID
:0           #用户GID
:root          #用户的一些描述信息(空就表示没有)
:/root          #用户家目录
:/bin/bash          #用户登录shell


2.用户密码文件

/etc/shadow  

用户存放密码及其其他属性的的文本文件 

#以下是用户密码属性文件部分内容
[root@centos6 testdir]# cat /etc/shadow
root:$6$bkV/N8gpLVgw66mE$GCRmhYK3r75F/OFuN4.kiSvIcsXkddGbZWJykdPIh5H32aZwGgsLW7I030JAkCC.GTn8CAopetseb90TEAMbp/:17007:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
sync:*:15980:0:99999:7:::
shutdown:*:15980:0:99999:7:::
halt:*:15980:0:99999:7:::
mail:*:15980:0:99999:7:::
uucp:*:15980:0:99999:7:::
operator:*:15980:0:99999:7:::
games:*:15980:0:99999:7:::
gopher:*:15980:0:99999:7:::
ftp:*:15980:0:99999:7:::
nobody:*:15980:0:99999:7:::
dbus:!!:17007::::::
usbmuxd:!!:17007::::::
rpc:!!:17007:0:99999:7:::
rtkit:!!:17007::::::
liaoxz:!!:17008:0:99999:7:::
liaoxz     用户名
!!       密码(用户没有设置密码是禁止登录的所以是两个!!)
:17008     从1970.1.1起到密码最近一次更改时间
:0       密码再过几天可以被更改
:99999     密码有效期
:7       密码过期前几天提醒(默认一周)
::       密码过期几天后被锁定
::       账户有效期(从1970.1.1算起多少天后失效)


3.组属性文件

/etc/group

组的相关属性(包括组名,gid等)

cat /etc/passwd
root:x:0:liaoxz
root          组名
:x          组密码(因为安全因素这里不设定密码)
:0          组id(组的标识号码)
:liaoxz          以当前组作为附加组的用户列表

 

4.组密码文件

/etc/gshadow

存储组密码的相关属性(包括组的密码,管理员等)

[root@centos6 mail]# cat /etc/gshadow
bin:::bin,daemon
bin            群组名  
::            群组密码(空为没有)
::            组管理员列表(空为没有)
bin,daemon            以当前组作为附加组的用户列表

5.其它文件操作命令

#直接打开用户属性文件命令
[root@centos6 ~]# vipw
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync

#直接打开组属性文件命令
[root@centos6 ~]# vigr
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:liaoxz
cdrom:x:11:
mail:x:12:postfix

#检查用户密码文件的完整性命令
#语法
pwck [options] [passwd [ shadow ]]
#主要选项
-q:只显示错误信息,警告不显示
-s:按id排序
-r:只读方式检查
[root@localhost ~]# pwck
user ‘ftp‘: directory ‘/var/ftp‘ does not exist
user ‘avahi-autoipd‘: directory ‘/var/lib/avahi-autoipd‘ does not exist
user ‘saslauth‘: directory ‘/run/saslauthd‘ does not exist
user ‘pulse‘: directory ‘/var/run/pulse‘ does not exist
pwck: no changes

#检查用户组及密码文件的完整性
#语法
grpck [options] [passwd [ shadow ]]
#主要选项
-q:只显示错误信息,警告不显示;
-s:按id排序;
-r:只读方式检查。
[root@localhost ~]# grpck




用户管理

查看用户id

命令1

#语法
id [OPTION]... [USERNAME]
#选项
-g或--group      显示用户所属群组的ID;
-G或--groups       显示用户所属附加群组的ID; 
-n或--name       显示用户,所属群组或附加群组的名称; 
-r或--real       显示实际ID; 
-u或--user       显示用户ID; 
-help          显示帮助; 
-version         显示版本信息。
#实例
[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root)


用户创建

命令2

#语法
 useradd [options] LOGIN
[root@centos6 mail]# useradd test
[root@centos6 mail]#
#主要选项
  -c:加上备注文字,备注文字保存在passwd的备注栏中;
  -d:指定用户登入时的主目录,替换系统默认值/home/<用户名>;
  -D:变更预设值;
  -e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效;
  -f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。
  默认值为-1;
  -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,
  即users;
  -G:指定用户所属的附加群组;
  -m:自动建立用户的登入目录;
  -M:不要自动建立用户的登入目录;
  -n:取消建立以用户名称为名的群组;
  -r:建立系统账号;
  -s:指定用户登入后所使用的shell。默认值为/bin/bash;
  -u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该
    值必须大于499;
  #实例
  
  [root@centos6 testdir]# useradd –g natasha –G work1 liaoxz
   #  -g 加入主要组   -G 加入辅助组
  [root@centos6 testdir]# useradd -u 520 -s /bin/csh -g root -G bin lxz
  #   -u 指定uid   -s 指定登录shell     -g  指定主组    -G 指定辅助组


用户属性更改命令

命令3

#语法
usermod[OPTION]login
[root@centos6 testdir]# usermod -d /root/ liaoxz 
usermod
#主要选项
 -c   修改用户帐号的备注文字; 
 -d   修改用户登入时的目录; 
 -e   修改帐号的有效期限; 
 -f   修改在密码过期后多少天即关闭该帐号;
 -g   修改用户所属的群组; 
 -G   修改用户所属的附加群组;
 -l   修改用户帐号名称;
 -L   锁定用户密码,使密码无效;
 -s   修改用户登入后所使用的shell;
 -u   修改用户ID;
 -U   解除密码锁定。 
#实例
[root@centos6 testdir]# usermod -d /root/  -c "liaoxz" -u 521 liaoxz
#-d 修改用户目录  -c  修改备注信息  -u 修改UID

 

删除用户命令

命令4

#语法
userdel [options] LOGIN
#主要参数 
  -f 强制删除用户;
  -r 删除用户同时删除相关文件。
#实例
[root@centos6 testdir]# userdel -fr lxz


用户切换命令

命令5

#语法
su [OPTION]... [-] [USER [ARG]...]
#主要选项:
su –                     登录式切换。直接登录到用户配置文件 属于完全切换命令;
su                      非登录式切换 不会读取配置文件,不改变当前工作目录命令;
su  -username -c “ls”使用指定用户在不切换的情况执行某个命令;
su  -l username        相当于执 su – username 。
#实例
[root@centos6 testdir]# su lxz
[lxz@centos6 testdir]$ pwd
/testdir
[lxz@centos6 testdir]$ who am i 
root     pts/1        2016-07-26 09:22 (10.1.250.31)
[lxz@centos6 testdir]$ 
 #使用su不添加任何选项   不变更工作目录,以及HOME,SHELL,USER,logname。不会变更PATH变量


设置用户密码

命令5

#语法
passwd[OPTIONS] UserName
#主要选项
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。
#实例
[root@localhost ~]# useradd lxz
[root@localhost ~]# passwd lxz
Changing password for user lxz.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
#给用户设置密码

[root@localhost ~]# cat /etc/shadow
lxz:$6$isscheKT$T8sdUTJjZKjzvPBM6SXjLYGie7FbUTYQekpvhDHEwnyl577ZMLjkQhNXd6s2ZMJfU07.mNJyDI
nI6P5YnKNHq0:17015:0:99999:7:::
#查看文件

[root@localhost ~]# passwd -d lxz
Removing password for user lxz.
passwd: Success
#删除密码

[root@localhost ~]# cat /etc/shadow
lxz::17015:0:99999:7:::
#密码passwd 添加-d选项删除密码成功

 

用户其他相关命令

#<修改用户信息>
#语法
chfn [option] [username]
#实例
[root@localhost ~]# chfn xiaoliao
Changing finger information for xiaoliao.
Name []: li^H
chfn: control characters are not allowed
Name []: liao
Office []: none
Office Phone []: 13600110011
Home Phone []: 3368663

Finger information changed.
[root@localhost ~]# getent passwd xiaoliao
xiaoliao:x:1003:1003:liao,,13600110011,3368663:/home/xiaoliao:/bin/bash
#更改xiaoliao用户常用信息为备注为liao,手机号为13600110011,家用电话号为3368663

#<指定用户shell>
#语法
chsh [option] [username]
#实例
[root@localhost ~]# chsh xiaoliao
Changing shell for xiaoliao.
New shell [/sbin/nologin]: /bin/csh
Shell changed.
[root@localhost ~]# getent passwd xiaoliao
xiaoliao:x:1003:1003:liao,,13600110011,3368663:/home/xiaoliao:/bin/csh
#更改用户xiaoliao的shel为/bin/csh 

#<查看其它用户的信息>
#语法
finger [username]
#实例
[root@localhost Packages]# rpm -ivh finger-0.17-52.el7.x86_64.rpm 
warning: finger-0.17-52.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:finger-0.17-52.el7               ################################# [100%]
[root@localhost Packages]# fin
find                   findfs                 findmnt                finger
find2perl              find-jar               find-repos-of-install  
[root@localhost Packages]# finger xiaoliao
Login: xiaoliao       			Name: liao
Directory: /home/xiaoliao           	Shell: /bin/csh
Office: 13600110011, 336-8663
Never logged in.
No mail.
No Plan.
[root@localhost Packages]# finger xiaohua
Login: xiaohua        			Name: 
Directory: /home/xiaohua            	Shell: /bin/bash
Last login Wed Aug  3 09:53 (CST) on pts/2
No mail.
No Plan.
#因为系统默认没有安装该工具,所以先安装,使用finger [username] 查看到了xiaoliao,xiaohua的
用户信息


组管理 

创建组

命令1

#语法
groupadd [options] group
#主要选项
-g:指定新建工作组的id; 
-r:创建系统工作组,系统工作组的组ID小于500; 
-K:覆盖配置文件“/ect/login.defs”; 
-o:允许添加组ID号不唯一的工作组。
#实例
[root@localhost ~]# groupadd -g 518 -r liao
[root@localhost ~]# cat /etc/group
liao:x:518:

 

修改组的属性

命令2

#语法
groupmod [options] GROUP
#主要选项
-g:设置欲使用的群组识别码; 
-o:重复使用群组识别码; 
-n:设置欲使用的群组名称。
#实例
[root@localhost ~]# groupmod -g 528 -n liaox liao
[root@localhost ~]# cat /etc/group
liaox:x:528:
#修改组liao的GID为528 并改名为liaox


设置组密码

命令3

#语法
gpasswd [option] group
#主要选项
-a:添加用户到组; 
-d:从组删除用户; 
-A:指定管理员; 
-M:指定组成员和-A的用途差不多; 
-r:删除密码; 
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
#实例
[root@localhost ~]# gpasswd lxz
Changing the password for group lxz
New Password: 
Re-enter new password: 
[root@localhost ~]# cat /etc/gshadow
lxz:$6$3dQLT/P9053$dBPGZR7j6xKsEUy4lmnZDHnMNH4WGJ5XiHCeCjGETQn4XomOQGHTST9q/bLwOOoHvz3NwNu
7/DL0xX9zEfeZl0::
#给使用gpasswd给用户lxz设置区密码

[root@localhost ~]# gpasswd -a  l  lxz
Adding user l to group lxz
lxz:$6$3dQLT/P9053$dBPGZR7j6xKsEUy4lmnZDHnMNH4WGJ5XiHCeCjGETQn4XomOQGHTST9q/bLwOOoHvz3NwNu
7/DL0xX9zEfeZl0::l
#将l用户加入到组lxz中

[root@localhost ~]# gpasswd -r lxz
[root@localhost ~]# cat /etc/gshadow
lxz:::l
#将组lxz的密码删除

 

删除组

命令4

#语法
 groupdel [options] GROUP
#实例
[root@localhost ~]# groupadd xiaoliao
[root@localhost ~]# getent group xiaoliao
xiaoliao:x:1003:
[root@localhost ~]# groupdel xiaoliao
[root@localhost ~]# getent group xiaoliao
[root@localhost ~]# 
 #新建用户xiaoliao,并将其删除


组成员更改与查看

命令5

#语法
groupmems  [options] [action]
#主要选项
-g: –group groupname 更改组 groupname,而不是用户的组(只 root); 
-R: –root CHROOT_DIR chroot 到的目录动作; 
-a: –add 将用户 username 添加到组成员中; 
-d: –delete username 从组的成员中删除用户; 
-h: –help 显示此帮助信息并推出; 
-p: –purge 从组中移除所有成员; 
-l: –list 列出组中的所有成员。 
#实例
[root@localhost ~]# useradd xiaoliao
[root@localhost ~]# groupadd xiaoliaogroup
[root@localhost ~]# groupmems -g xiaoliaogroup -a xiaoliao
[root@localhost ~]# getent group xiaoliaogroup
xiaoliaogroup:x:1004:xiaoliao
#将用户xiaoliao加到组xiaoliaogroup
 
[root@localhost ~]# groupmems -g usergroup -l 
xiaowang  xiaoqiang  xiaohua  xiaoliu
#列出组usergroup的成员


组常用基本命令

命令6

#临时切换基本组命令
#语法
newgrp [-] [group]
#实例
[root@localhost ~]# newgrp usergroup
[root@localhost ~]# id
uid=0(root) gid=1009(usergroup) groups=1009(usergroup),0(root) context=unconfined_u:unconf
ined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost ~]# exit
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s
0:c0.c1023
#临时将root用户添加到usergrou组,当用户退出后再登录失效


命令7

#查看用户所属组列表
#语法
groups [OPTION]... [USERNAME]...
#实例
[root@localhost ~]# groups xiaoliao
xiaoliao : xiaoliao xiaoliaogroup usergroup 
#查看用户xiaoliao所属组列表

技术分享


本文出自 “笔记” 博客,请务必保留此出处http://snowbamboo1.blog.51cto.com/9291858/1833868

笔记-linux系统用户与组

标签:linux   用户      

原文地址:http://snowbamboo1.blog.51cto.com/9291858/1833868

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!