Linux:用户和组管理及权限管理

linux用户和组管理及权限管理

一、useradd命令:在系统中添加用户

常用参数:

-d家目录
-g设置主组,
-G设置附加组,
-s指定默认shell,
-M不创建家目录等内容
-m创建家目录
-r创建系统账号(默认不创建家目录)
-c描述 (/etc/passwd中第5个字段中)
-N创建账号时,不创建同名组,默认放到users组内
-u UID
-o 配合-u选项,不检查UID的唯一性,同UID多用户名

在系统上添加一个用户名称为apache的用户;shell为/sbin/nolgoin;主组:apache; 附加组:daemon,bin; UID:80; home:/var/www

[root@centos7 ~]#getent passwd apache 先查看是否存在
[root@centos7 ~]#useradd -G daemon,bin -u 80 -r -m -d /var/www -s /sbin/nologin apache

二、usermod命令:变更用户设置

常用参数:

-u UID
-g GID
-G 附加组,原来的会被覆盖,若保留原有,则要同时使用-a(append)选项
-s SHELL
-c 新注释信息(comment)
-d home 新家目录不会自动创建,若要创建新目录并移动原家数据同时使用-m选项
-l login_name新的名字
-L lock指定用户,在/etc/shadow密码栏增加!
-U unlock指定用户,在/etc/shadow密码栏!去除
-e YYYY-MM-DD指明用户账号过期日期
-f INACTIVE:设备非活动期限

改变用户dushan的主组为g1,添加附加组g2并且保留原来附加组g3

[root@centos7 data]#usermod -g g1 -aG g2 dushan
[root@centos7 data]#id dushan
uid=1001(dushan) gid=1003(g1) groups=1003(g1),1004(g2),1005(g3)

三、userdel命令:删除用户

常用参数:

-r 删除用户家目录

[root@centos ~]#userdel -r apache

四、id命令:查看用户相关的ID信息

常用参数:

-u 显示UID
-g 显示GID
-G 显示用户所属的组的ID
-n 显示名称,需配合ugG使用

[root@centos ~]#id liuying
uid=1001(liuying) gid=1003(liuying) groups=1003(liuying),1002(home)
[root@centos ~]#id -Gn liuying
liuying home

通常使用id命令判断用户是否存在

五、su命令:切换用户

常用方法:

su USERNAME:非登录式切换,不会读取目标用户的配置文件,不改变当前工作目录

su - USERNAME:登录式切换,读取目标用户配置文件,切换至家目录,完全切换

root su 至其他用户无需密码;非root用户切换需密码

常用选项:

-c 切换身份执行命令

-l 登陆 相当于 su - USERNAME

  • 完全切换dushan用户身份
[root@centos7 ~]#su - dushan
Last login: Thu Sep  6 16:26:43 CST 2018 on pts/0
[dushan@centos7 ~]$ pwd
/home/dushan
  • 不完全切换到linux用户身份
[root@centos7 ~]#su dushan
[dushan@centos7 root]$ pwd
/root

注:su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误,报command not found的错误。

六、passwd命令:设置用户密码

常用选项:

-d :删除指定用户密码
-l :锁定指定用户
-u :解锁指定用户
-e :强制用户下次登陆修改密码
-f :强制操作
-n :mindays:指定最短使用期限
-x maxdays:指定最长使用期限
-w warndays:提前多少天开始告警
-i inactivedays:非活动期限
–stdin:从标准输入接收用户密码echo "password"|passwd --stdin USERNAME >/dev/null

修改用户dushan的登录密码

[root@centos7 ~]#passwd dushan
或
[root@centos7 ~]#echo 'dushan' | passwd --stdin dushan
Changing password for user dushan.
passwd: all authentication tokens updated successfully.

七、chage命令: 修改用户密码策略

常用选项:

-d:LAST_DAY 立即生效chage -d 0 dushan下次登陆强制重设密码
-E --expiredate: 有效期日期
-l --inactive: 非活动期限
-m --mindays:最短有效期
-M --maxdays:最长有效期
-W --warndays:警告日期
-l 显示密码策略

#chage -E 2019-09-16 dushan
#chage -m 0 -M 42 -W 14 -I 7 dushan  最短0天,最长42天,剩14天开始提示,过期7天后锁定。
#chage -d 0 dushan 立即锁定账户,下次登陆强制重设密码

#chfn dushan 给dushan用户添加信息
#finger dushan 查看用户信息(需先安装finger包)

八、groupadd命令:创建组

常用选项:

-g:指明GID号
-r:创建系统组 默认centos6:id<500,centos7:id<1000

添加nginx组
[root@centos7 ~]# groupadd -r -g 8080 nginx
[root@centos7 ~]# getent group nginx   查看创建情况

九、groupmod命令:修改组

常用选项:

-n:新名字
-g:新GID号

[root@centos7 ~]#groupmod -g 2222 -n family home 
[root@centos7 ~]#getent group family
family:$5$WOpdK/R32tI5ewPI$tZBOnDP0:2222:dushan

groupdel命令:groupdel family 删除family组

十、gpasswd命令:组密码

常用选项:

-a :将用户添加至指定组中
-d :从指定组中移除用户

[root@centos7 ~]#gpasswd -a dushan family
Adding user dushan to group family
[root@centos7 ~]#gpasswd -d dushan family
Removing user dushan from group family

十一、newgrp命令:临时切换主组

普通用户临时切换主组,作用为创建文件不为自己所有,为所属主组情况下使用

[root@centos7 ~]#su - dushan
Last login: Wed Jul 17 15:55:19 CST 2019 on pts/0
[dushan@centos7 ~]$ touch test.log
[dushan@centos7 ~]$ ll test.log 
-rw-rw-r-- 1 dushan dushan 0 Jul 18 14:24 test.log
[dushan@centos7 ~]$ newgrp family
Password: 
[dushan@centos7 ~]$ touch test2.log
[dushan@centos7 ~]$ ll test2.log
-rw-r--r-- 1 dushan family 0 Jul 18 14:25 test2.log

十二、groupmems命令:调整组成员

常用选项:

-g,–group groupname 更改指定组(只有root)
-a,–add username 指定用户加入组
-d, --delete username 从组中删除用户
-p,–purge 从组中清除所有成员
-l,–list 显示组成员列表

[root@centos7 ~]#groupmems -g family -a dushan 往family组中添加dushan用户
[root@centos7 ~]#groupmems -l -g family 显示family组中成员

groups+user显示user所属的组
[root@centos7 ~]#groups dushan
dushan : dushan family

十三、newusers命令:批量创建用户

需要/etc/passwd格式文件,批量创建用户,可用于新机器恢复用户

[root@centos7 ~]#newusers /etc/passwd.copy
使用命令后会生成家目录,可是缺少文件,切换用户后cp相关文件即可
#su - test
#cp -r /etc/skel/. .

十四、chpasswd命令:批量修改用户口令

chpasswd本身是交互式命令,直接键入:dushan:centos后,ctrl+d结束即可

[root@centos7 ~]#cat /data/passwd.txt |chpasswd
格式如下:
[root@centos7 ~]#cat /data/passwd.txt 
dushan:centos
tom:centos

十五、chown命令:修改文件所属关系

设置/data/dir目录及其子目录和文件属主属组为apache

[root@centos7 data]#chown -R apache.apache /data/dir
[root@centos7 data]#ll
total 8
lrwxrwxrwx 1 root   root    19 Sep  6 09:47 apachectl -> /usr/sbin/apachectl
drwxr-xr-x 3 apache apache  33 Sep  6 09:59 dir
-rw-r--r-- 1 root   root    98 Sep  6 12:20 fstab.out
-rw-r--r-- 1 root   root   170 Sep  3 10:26 functions.bak

注意:chown -R apache.apache等价于chown -R apache:apache

#chgrp home testfile.txt 把文件所属组改为home

十六、chmod命令:改变文件权限

一、chomd常用方法

1. 修改权限为属主添加写和执行权限、属组没有读权限其它人有读和执行权限

   [root@centos7 ]#chmod u+wx,g-r,o=rx checkid.sh 

2. 递归设置testdir目录权限为:属组添加可读、可写、可执行权限,但其子文件不添加执行权限

   [root@centos7 ~]# chmod -R g=rwX testdir/
   大写X不添加给子目录执行

3. 设置文件fstab.out权限为只有属主有读写权限

   [root@centos7 ~]#chmod 600 fstab.out 

4. 参考f2权限,给f1设置权限

[root@centos7 ~]#chmod --reference=f2 f1

二、SUID,SGID:继承所有者,所属组权限

SUID 作用于二进制程序上, 继承所有者权限。(理解,一般不特意设置)

设置二进制可执行程序文件chmod拥有suid权限
[root@centos7 ~]#chmod u+s chmod

取消二进制可执行程序文件chmod拥有的suid权限
[root@centos7 ~]#chmod u-s chmod

注:继承属主的权限 如/usr/bin/passwd,否则普通用户无法修改密码,/bin/vim如设置suid权限,则普通用户可以自行修改/etc/passwd文件身份变成root!
[root@centos7 ~]#ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

GUID作用于二进制程序上,继承所有组权限。

还可作用于文件夹上,新文件继承所属组。

​ 例:对/data目录设置sgid权限,作为协作目录,以后在此目录下建文件,所属组均同/data目录所属组一样

[root@centos7 ~]#chmod g+s /data
[root@centos7 ~]#ll -d /data
drwxrwsr-x. 3 root sales 85 Sep  6 16:31 /data

三、Sticky(粘滞位)权限设置:只有文件的所有者或root才能删除该目录下的文件

对/data目录设置sticky权限

[root@centos7 ~]#chmod o+t /data
表现为chmod 1777 
	chmod 7777 则为suid guid 和sticky权限都有了,当然这样并没有意义 
[root@centos7 ~]#ll -d /data
drwxrwxrwt. 3 root root 85 Sep  6 17:07 /data

 取消/data目录的sticky权限
[root@centos7 data]#chmod o-t /data

四、 ACL Access Control List 访问控制列表

ACL生效顺序:所有者,自定义用户,自定义组,其他人

setfacl常用选项:

-m 设置权限

-x 撤销权限

-b 清空权限

-R 递归

-M 读取列表setfacl -M acl.txt f1(对f1文件设置acl.txt文件中的权限)

-k 删除文件夹权限setfacl -k dir

在/data/dir里创建的新文件自动属于g1组;
[root@centos7 ~]#setfacl -Rm g:g1:rwx /data/dir

dushan用户对/data/dir文件夹只有读权限
[root@centos7 ~]#setfacl -m u:dushan:r-- /data/dir

清空权限
[root@centos7 ~]#setfacl -b /data/dir

查看文件夹ACL权限
[root@centos7 ~]#getfacl /data/dir

复制file1的acl权限给file2
[root@centos7 ~]#getfacl file1 |setfacl --set-file=- file2

ACL备份和还原
getfacl -R /tmp/dir >/root/acl.txt  备份权限
setfacl -R --set-file=acl.txt /tmp/dir 还原权限

或在当前目录下:
setfacl --restore /root/acl.txt     还原权限

五、root用户对某文件防误操作
root也改不了删不了
#chattr +i   /etc/
#chattr -i    /etc  去除


root可以改不能删
#chattr -a  /etc
#chattr +a /etc

网站修改读时间,可添加+A no time updates(修改读时间)
#chattr +A 
#chattr -A   

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值