一、用户和组管理
相关配置文件
/etc/passwd:
用户名 : 密码占位符 : UID : GID : COMMENTS : 家目录 :默认shell
/etc/group:
组名 : 组密码占位符 : GID : 以当前组为附加组的用户列表
/etc/shadow
用户名 :加密后的密码 :最近一次更改密码的日期 : 密码最小使用期限 :密码最大使用期限 :密码警告时间段 : 密码禁用期 :账户过期日期 : 保留字段
用户和组相关的管理命令
用户创建:useradd
-u UID: [UID_MIN,UID_MAX],定义在/etc/login.defs
-g GID: 指明用户所属基本组,可为组名,也可以为Gid
-c "COMMENTS": 用户的注释信息
-d /PATH/TO/HOME_DIR:以指定的路径为家目录
-s shell: 指明用户的默认shell,可用列表在/etc/shells文件中
-G GROUP1 [GROUP2,...]: 为用户指明附加组,组必须事先存在
-r: 创建系统用户
Centos6: ID<500
Centos7: ID<1000
默认值设定: /etc/default/useradd
组创建:groupadd
-g GID: 指明GID号
-r: 创建系统组
用户属性修改:usermod
-u UID: 新UID
-g GID: 新基本组
-G GROUP1... : 新附加组,原来的附加组会被覆盖,如果是追加,则要-a
-a -G: 追加附加组
-s SHELL: 新的默认SHELL
-d HOME: 新的家目录,原有家目录中的文件不会同时移动至新的家目录,若要移动,则同时需使用-m
-l login_name:新的名字
-L: lock指定用户
-U: 解锁用户密码
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限
给用户添加密码: passwd
passwd UserName: 修改指定用户的密码,仅root用户权限
常用选项:
-l:锁定用户
-u: 解锁用户
-n mindays: 指定最短使用期限
-x maxdays: 最大使用期限
-w warndays: 提前多少天开始警告
-i inactiveday:非活动期限
-e : 过期期限
--stdin: 从标准输入接受用户密码
echo "PASSWORD" | passwd --stdin USERNAME
修改用户属性: chage
-d: last_day,从1970年一月一号到密码修改时的天数
-E: expire_day,密码过期时间
-I: --inactive,密码非活动期限
-m: --mindays,密码最小使用期限
-M: --maxdays, 密码最长使用期限
-W: --warnday, 密码警告时间
组属性修改:groupmod
-n group_name: 新名字
-g GID: 新的GID
组密码添加: gpasswd
gpasswd -a user1 mygrp: 将user1添加至附加组mygrp
-a user: 将user添加至指定组中
-d user: 删除附加组
-A user1,user2,...: 设置有管理权限的用户列表
删除用户: userdel
-r: 删除用户家目录
二、权限管理
仅root可用
修改文件的属主:chown
修改文件的权限: chmod
递归: -R
文件或目录创建时的遮罩码: umask
FILE: 666-umask
Note: 如果某类用户的权限减得的结果存在x权限,则将其权限+1
DIR: 777-umask
umask: 查看
umask #:设定,临时设置
三、特殊权限
SUID, SGID, Sticky
1. SUID
(1) 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限(比如其他用户的权限)
(2)启动为进程后,其进程的属主为原程序文件的属主
权限设定: chmod u+s | u-s FILE...
2. SGID
(1) 默认情况下,用户创建文件时,其属组为此用户所属的基本组
一旦某目录被设定了SGID权限,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组
权限设定: chmod g+s | g-s DIR...
3. Sticky
对于一个多人可写的目录如果设置了sticky,则每个用户仅能删除自己的文件
权限设定: chmod o+t | o-t DIR...