众所周知,Linux是一个多用户、多任务的系统。而当很多用户同时登录时,系统是怎样管理用户,并给他们赋予相应的权限呢?
Linux中有三类用户
超级用户(UID为0)
系统用户(伪用户、非登录)
仅运行服务程序
centos6.x中UID为1-499
centos7.x中UID为1-999
登录用户(普通用户)
centos6.x中UID:500-65535
centos7.x中UID:1000-65535
用户解析库文件(任何人都可以访问):
/etc/passwd
name:password:UID:GID:GECOS:directory:shell
第一列(name):用户名
第二列(password):密码,用X占位,而真正的密码存放 在/etc/shadow中
第三列(UID):用户的UID
第四列(GID):用户的基本组GID
第五列(GECOS):用户的描述信息
第六列(directory):用户的家目录
第七列(shell):用户的登录shell
用户口令文件shadow(只有root可以访问):
/etc/passwdcat /etc/shadow
用户名:加密密码:上次更改密码的时间:最小更改密码间隔:密码有效期限:密码过期提示时间:密码锁定期:账户有效期:保留字段
用户名:
口令:存放加密口令,如果第一个字符是!,表示该用户不能登录
最后一次修改时间:
最大时间间隔:0 可以随时改变
最小时间间隔:99999 表示永远不过期
警告时间:1周
不活动时间:
失效时间:
用户管理:
添加用户:useradd
useradd [options] LOGIN
常用选项:
-c: 注释信息
-d: 家目录路径
-g:用户的基本组组名或GID;
-G: 用户所属的附加组列表
-m: 强制创建家目录;
-M:不创建用户主目录
-r:创建一个系统账户
-s: 用户的登录 shell 名
-u: 用户的 UID 。
删除用户:userdel
userdel [options] LOGIN
常用选项:
-r:删除用户时连同该用户家目录一起删除
修改账号信息:usermod
-c: 注释信息
-d: 修改家目录为新的位置,应该同时使用-m选项让原家目录中的文件移动到新目录中;
-g:指定基本组
-G:修改时会覆盖原有的附加组;一同使用-a选项,表示为用户添加新的附加组;
-l:修改当前用户的用户名;
-s:更改登录shell
-u:更改UID
-L:锁定用户的密码。
-U:解锁用户的密码。
用户组管理:
用户组的管理文件:group /etc/group
group_name/password/GID/user_list
分为四个部分:
组名:用户登录时所在的组名
组密码:切换到一个新组时用到的密码
组标识码(GID):组ID
组内用户列表:属于改组的所有用户列表
添加用户组
useradd username (默认建立username用户组)
groupadd 组帐号名称
修改组名
groupmod -n newName groupName
删除组帐号
groupdel 组帐号名称
注意:删除的帐号必须存在,且不能是某个用户的私有组
添加用户到组
gpasswd -a userName groupName
从组中删除用户
gpasswd -d userName groupName
查看某个用户属于哪个组
groups userName
查看某个组有哪些用户
grep "组名" /etc/group
权限管理(chmod):
当使用ll命令查看某个文件时会出现如下:
[root@localhost ~]# lltotal 4 -rw-------. 1 root root 2639 Mar 4 16:53 anaconda-ks.cfg -rw-r--r-- 1 root root 0 Mar 8 12:43 test.sh
-rwxr--r--
第一个字符-:表示为普通文件
第2-4个字符:表示属主的权限为rwx
第5-7个字符:表示属组的权限为r
第8-10个字符:表示其他人的权限为r
r(4):可读的
w(2):可写的
x(1):可执行的
文件:
r:可获取文件的数据;
w:可修改文件的数据;
x:可将此文件运行为进程;
三类用户:
属主:owner, u
属组:group, g
其它:other, o
chmod命令:改变文件权限
授权表示法:直接操作一类用户一位或多位权限
[root@localhost test]# chmod u+x,g+w fstab [root@localhost test]# lltotal 36 -rw-r--r-- 1 root root 261 Mar 9 16:07 adduser -rwxr--r-- 1 root root 251 Mar 8 09:49 adduser.sh -rwxrw-r-- 1 root root 595 Mar 9 15:06 fstab -rw-r--r-- 1 root root 4179 Mar 9 16:25 grub.cfg -rw-r--r-- 1 root root 2255 Mar 9 15:09 passwd -rw-r--r-- 1 root root 102 Mar 9 12:26 rmlog.sh -rwxr-xr-x 1 root root 366 Mar 8 16:33 sum.sh -rwxr--r-- 1 root root 67 Mar 8 16:25 test.sh
赋权表示法:直接操作一类用户的所有权限位rwx;
[root@localhost test]# chmod ug=rwx,o=rw ./passwd [root@localhost test]# lltotal 36 -rw-r--r-- 1 root root 261 Mar 9 16:07 adduser -rwxr--r-- 1 root root 251 Mar 8 09:49 adduser.sh -rwxrw-r-- 1 root root 595 Mar 9 15:06 fstab -rw-r--r-- 1 root root 4179 Mar 9 16:25 grub.cfg -rwxrwxrw- 1 root root 2255 Mar 9 15:09 passwd -rw-r--r-- 1 root root 102 Mar 9 12:26 rmlog.sh -rwxr-xr-x 1 root root 366 Mar 8 16:33 sum.sh -rwxr--r-- 1 root root 67 Mar 8 16:25 test.sh
还有一种数字表示法:
[root@localhost test]# chmod 755 ./grub.cfg [root@localhost test]# lltotal 36 -rw-r--r-- 1 root root 261 Mar 9 16:07 adduser -rwxr--r-- 1 root root 251 Mar 8 09:49 adduser.sh -rwxrw-r-- 1 root root 595 Mar 9 15:06 fstab -rwxr-xr-x 1 root root 4179 Mar 9 16:25 grub.cfg -rwxrwxrw- 1 root root 2255 Mar 9 15:09 passwd -rw-r--r-- 1 root root 102 Mar 9 12:26 rmlog.sh -rwxr-xr-x 1 root root 366 Mar 8 16:33 sum.sh -rwxr--r-- 1 root root 67 Mar 8 16:25 test.sh
chown命令:改变属主和属组
常用选项:
-R, --recursive:递归修改;
[root@localhost tao]# chown root:tao first.sh [root@localhost tao]# lltotal 8 -rwxrwxr-x 1 tao tao 80 Mar 7 12:02 adduser.sh -rwxrwxr-x 1 root tao 64 Mar 7 11:03 first.sh
chgrp命令:改变属组
用法:
chgrp [OPTION]... GROUP FILE...
or: chgrp [OPTION]... --reference=RFILE FILE...
[root@localhost tao]# chgrp root ./adduser.sh [root@localhost tao]# lltotal 8 -rwxrwxr-x 1 tao root 80 Mar 7 12:02 adduser.sh -rwxrwxr-x 1 root tao 64 Mar 7 11:03 first.sh
转载于:https://blog.51cto.com/zhaoyongtao/1749517