1. 用户和密码的创建修改和删除

用户相关的配置文件

/etc/passwd文件总共分为7部分 用户名:用户密码:UID:GID:用户的描述:用户的家目录:登入shell /etc/shadow文件总共分为9部分 用户名:密码位:密码上一次修改时间:密码最小存活时间:密码最大存活时间:密码过期之前多少天提醒用户:密码过期之后多少天用户过期:账户过期时间(与密码上一次修改时间无关):保留位


用户相关命令

id ----------------------------------查看用户的信息(用户名,UID,GID,附加组等信息) ** useradd&adduser ------>创建用户命令** -u:指定用户的UID

[root@centos7 ~]# useradd -u 2000 user1 [root@centos7 ~]# id user1 uid=2000(user1) gid=2000(user1) groups=2000(user1)

-g:指定用户的主组

[root@centos7 ~]# useradd -g user1 user2 [root@centos7 ~]# id user2 uid=2001(user2) gid=2000(user1) groups=2000(user1)

-G:指定用户的附加组信息

[root@centos7 ~]# useradd -G user1 user3 [root@centos7 ~]# id user3 uid=2002(user3) gid=2002(user3) groups=2002(user3),2000(user1)

-c:用户的描述信息

[root@centos7 ~]# useradd -c "ceshixinxi" user4 [root@centos7 ~]# cat /etc/passwd | grep user4 user4:x:2003:2003:ceshixinxi:/home/user4:/bin/bash

-s:指定用户的登入shell

[root@centos7 ~]# useradd -s /sbin/nologin user5 [root@centos7 ~]# grep user5 /etc/passwd user5:x:2004:2004::/home/user5:/sbin/nologin

-d:指定用户的家目录

[root@centos7 ~]# useradd -d /user6 user6

-o:不检查UID的唯一性,相当于创建有两个登录名的用户

[root@centos7 user6]# useradd -o -u 2000 user7 [root@centos7 user6]# id user1 uid=2000(user1) gid=2000(user1) groups=2000(user1) [root@centos7 user6]# id user7 uid=2000(user1) gid=2000(user1) groups=2000(user1)

-N:不创建私有组,指定users组做为主组

[root@centos7 user6]# grep user8 /etc/passwd user8:x:2006:100::/home/user8:/bin/bash

-r:创建系统用户(CentOS 6之前的 <500,Centos 7 <1000)

[root@centos7 user6]# useradd -r user9 [root@centos7 user6]# grep user9 /etc/passwd user9:x:991:986::/home/user9:/bin/bash


usermod -------------------->更改用户的信息 -u newUID user:修改用户的uid

[root@centos7 user6]# usermod -u 3000 user1 [root@centos7 user6]# id user1 uid=3000(user1) gid=2000(user1) groups=2000(user1)

-g newGID user:修改用户名的主组

[root@centos7 user6]# usermod -g 2002 user1 [root@centos7 user6]# id user1 uid=3000(user1) gid=2002(user3) groups=2002(user3)

-G newGID user:修改用户的附加组

[root@centos7 user6]# usermod -G 2006 user1 [root@centos7 user6]# id user1 uid=3000(user1) gid=2002(user3) groups=2002(user3),2006(user7)

-a 与G配合使用,在添加附加组的时候,不会影响之前的附加组 -s shell名 user:设置用户的登入shell -c "描述信息" user:修改用户的描述信息 -d /newname 用户名 :修改用户的家目录,新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项 l newname oldname:修改用户名 -L user:锁定用户,相当于在/etc/shadow文件中的密码位前添加!

[root@centos7 user6]# usermod -L user1 [root@centos7 user6]# grep user1 /etc/shadow user1:!$6$PsV1.zv4$dGgmKQwIA1Hed/PkSqFdWApsysJ.3t3a4kndhC48fEftgmAauS9cFE2dyhpJ.fhfFAe/ki5LqZogFOHGAAq8b/:17551:0:99999:7:::

-U user:解锁用户

[root@centos7 user6]# usermod -U user1 [root@centos7 user6]# grep user1 /etc/shadow user1:$6$PsV1.zv4$dGgmKQwIA1Hed/PkSqFdWApsysJ.3t3a4kndhC48fEftgmAauS9cFE2dyhpJ.fhfFAe/ki5LqZogFOHGAAq8b/:17551:0:99999:7:::

-e YYYY-MM-DD:指明用户账户过期日期

[root@centos7 user6]# usermod -e 2019-02-20 user1 [root@centos7 user6]# grep user1 /etc/shadow user1:$6$PsV1.zv4$dGgmKQwIA1Hed/PkSqFdWApsysJ.3t3a4kndhC48fEftgmAauS9cFE2dyhpJ.fhfFAe/ki5LqZogFOHGAAq8b/:17551:0:99999:7::17947:


userdel -------------------->删除用户 -r 用户名:删除用户及其和用户有关的所有文件


passwd -------------------->设置密码 passwd username :指定要修改密码的用户名(仅root可以使用) -l :锁定用户 -u:解锁用户 -e:强制用户下次登录更改密码 -n:指定密码最短使用期限 -x:指定密码最大使用期限 -w:提前多少天开始警告 --stdin 从标准输入接收用户面 举例:echo 123456 |passwd --stdin root


chage --------------------->用来修改密码策略 -m:密码最小使用天数,如果为零将不受限制,随意更改。 -M:密码最大使用天数。 -w:密码过期前的多少天提醒用户。 -E:账户过期时间,如果超过该天数,账户将不可使用。 -d:上一次更改的日期。 -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 -l:显示出当前用户的密码策略。


2. 组的创建修改和删除

组相关的配置文件

** /etc/group文件分为四部分** 组名:密码位:GID:附加组 /etc/gshadow文件分为四部分 组名:密码:管理员:组成员

组相关命令

**groupadd ------------------->用来创建组

-g GID 组名:创建指定GID的组

[root@centos7 user6]# groupadd -g 3000 admins [root@centos7 user6]# grep admins /etc/group admins:x:3000:

groupmod------------------->用来修改组信息

-n newname 组名:修改组名 -g newGID 组名:修改GID

groupdel ------------------->用来删除组

groupdel 组名:删除组

gpasswd ----------------------->用来设置组密码 gpasswd 组名:设置组密码 -a username 组名:将某用户以附加组加入到该组(管理员就可以使用) -A username 组名:用来设置某组的管理员(仅root使用) -d username 组名:将某个用户从改组中删除(管理员就可以使用) -M username 组名:设置某族的用户列表(仅root使用) 相关命令 ** newgrp 组名:用来临时改变主组,若改用户附属组属于改组,则不用输入密码,若不属于,则需要输入密码。**


groupmems ---------------------用来修改用户的附加组 -g 组名 -a username:将某用户以附加组的方式加入到某组中 -g 组名 -d username:将某用户从该组中删除 -g 组名 -p :清空所有组成员 -g 组名 -l:列出该组中有哪些成员


groups 用户名 : 查看指定用户属于那些组 chown------------------------------------用来更改文件或目录所属人,也可以用来更改文件或目录的所属组 chown 用户名:组名 chown 用户名.组名 -R 递归 --reference=file1 file2:复制所属组 chgrp 组名 -----------------------------用来更改文件或目录的所属组 -R 递归


3. 普通权限

权限的作用对象:owner(所属人u)、group(所属组g)、other(其他人o) 普通权限分为:Read(读:r:4)、Write(写:w:2)eXe(执行:x:1) 设置权限的命令:chmod chmod u+rwx file :给file文件所属人添加rwx权限 chmod u=rwx file:给file文件所属人赋予rwx权限 chmod u-rwx file:给file文件所属人减去rwx权限 chmod g+rwx file :给file文件所属组添加rwx权限 chmod g=rwx file:给file文件所属组赋予rwx权限 chmod g-rwx file:给file文件所属组减去rwx权限 chmod o+rwx file :给file其他人添加rwx权限 chmod o=rwx file:给file其他人赋予rwx权限 chmod o-rwx file:给file其他人减去rwx权限 chmod a+rwx file:给全部人添加rwx权限 chmod a-rwx file:给全部人减去rwx权限 chmod a=rwx file:给全部人赋予rwx权限 chmod 777 file:给全部人添加rwx权限,第一位代表所有人,第二位代表所属组,第三位代表其他人。


权限的作用在文件时: 1)当仅有r权限时,用户可以读取文件内容。 2)当仅有W权限时,用户可以修改内容但是只可以覆盖和追加。 3)当仅有x权限时,无作为。 4)当有rw权限时,用户可以读写文件。 5)当有rx权限时,用户可以读文件和执行文件。 6)当有wx时,权限等同于仅有W权限。 常见权限有r--- rw- rwx 权限作用在目录上时: 1)当仅有r权限时,用户可以短列出文件名 2)当仅有w权限时,用户无作为。 3)当仅有x权限时,用户可以进入目录,并且在知道文件目录的情况下可以访问子文件。 4)当有rw权限时,权限等于仅有r。 5)当有rx全是时,用户进入,长列出 6)当有wx权限时,用户进入可以创建删除文件,但是不能使用通配符 目录常见权限r-x rwx


4. 高级权限

高级权限分为:Suid、Sgid、Sticky chmod u+s file **Suid:**指加入该权限后(作用在一个二进制文件上),当执行一个二进制文件权限会临时更改为该二进制文件的所属人。


**Sgid:**指加入该权限后(作用在目录或二进制文件),当加入该权限后,对于二进制文件来说,会临时的拥有所属组的权限,对与一个目录来说,当加入该权限,在该目录下创建文件或目录,所属组会自动变成该组。 **Sticky:**当对一个目录加了 该权限时,仅文件所属人,目录所属人及其root才能删除,其他人不能删除。


5. 特定权限

chattr: +a:不能删除,不能改名,不能修改,可以追加

[root@centos7 app]# chattr +a 1.txt [root@centos7 app]# rm -rf 1.txt rm: cannot remove ‘1.txt’: Operation not permitted [root@centos7 app]# mv 1.txt 2.txt mv: cannot move ‘1.txt’ to ‘2.txt’: Operation not permitted [root@centos7 app]# touch 123 > 1.txt -bash: 1.txt: Operation not permitted [root@centos7 app]# touch 123 >> 1.txt

+i:不能删除,不能改名,不能修改,不能追加。

[root@centos7 app]# chattr +i 1.txt [root@centos7 app]# lsattr 1.txt ----i----------- 1.txt

lsattr:查看权限。


6. ACL

setfacl:用来在命令行里设置权限,可以针对用户,组来设置权限 acl 设置格式setfacl -m u:user:rwx file 前面选项: -m:添加acl -X:批量导入 -d:设置默认权限 -k:清除默认权限 -b:清楚acl属性 后面选项: -u:指定用户权限 -g:指定附加组权限 -m:指定上线阈值 -o:指定其他人权限 举例使用: setfacl -m u:user:rwx file :给user添加rwx setfacl -m g:user:rwx file:给user组添加rwx setfacl -m d:u:user:rwx file:添加默认acl权限 setfacl -X file.acl file :将file.acl文件中权限给file文件 setfacl -k file :清除默认权限 setfacl -b file :清除acl属性 getfacl:用来查看设置的acl权限。

[root@centos7 app]# getfacl 1.txt

#file: 1.txt #owner: root #group: root user::rw- group::r-- other::r--