用户与用户组 | 目录与文件权限

首先,由一个问题引入用户与用户组:linux下怎样设置一个用户属于多个组,或一个组里有多个用户?
  1. 创建用户 liu123 ,赋予密码
[root@localhost /]# useradd liu123
[root@localhost /]# passwd liu123
  1. 创建用户组 thisis1 / thisis2
[root@localhost /]# groupadd thisis1
[root@localhost /]# groupadd thisis2
  1. usermod -G 组名:修改用户的附加组,其实就是把用户加入其他用户组
[root@localhost /]# usermod -G thisis1,thisis2 liu123

4.检查。一共出现三个组:组=505(liu123),507(thisis1),508(thisis2) 设置成功

[liu123@localhost /]$ id liu123
uid=504(liu123) gid=505(liu123) 组=505(liu123),507(thisis1),508(thisis2) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

一、用户(组)相关文件

  1. /etc/passwd :系统用户信息。查询登录后取得的默认 shell(每行的最后一个数据)。如果你不想要让这些使用者使用FTP 以外的主机资源时, 可能会给予该使用者一些怪怪的 shell,如: /sbin/nologin 。 详细的/etc/passwd参考链接: https://blog.csdn.net/jb19900111/article/details/13507825
  2. /etc/shadow :用户的实际加密密码和密码有效期等。权限 000
  3. /etc/group : 记录组 ID(GID) 和组名的对应文件。第四个字段只显示该用户组的附加用户,不显示初始组
  4. /etc/gshadow :保存组密码和组管理员信息。

二、用户(组)相关命令

  1. useradd 用户名 :添加用户。
    系统在默认添加用户时,是靠 /etc/default/useradd/etc/login.defs 文件定义用户的默认值的。如果我们想要修改所有新建用户的某个默认值,就可以直接修改这两个文件,而不用每个用户单独修改了。参考:http://c.biancheng.net/view/844.html
  2. passwd 用户名 :修改密码。
passwd 用户名       #修改用户密码
passwd             #修改当前用户密码,普通用户只能修改自己密码
passwd -l 用户名    #锁定用户
passwd -U 用户名    #解锁用户
passwd -S 用户名    #查看用户锁定状态
echo "123" | passwd -stdin lamp              #这种做法主要是批量添加用户时,给所有的用户设定一个
初始密码。但是需要注意的是,这样设定的密码会把密码明文保存在历史命令中,会有安全隐患。所以,如果使用了这
种方式修改密码,那么应该记住两件事情:第一,手工清除历史命令;第二,强制这些新添加的用户在第一次登录时
必须修改密码(具体方法参考"chage"命令)
  1. usermod 用户名:修改用户信息。
usermod -G          #修改用户的附加组,其实就是把用户加入其他用户组
usermod -g          #更换主组为h
usermod -d          #更换家目录 
usermod -u          #更换uid
  1. chage 用户名:修改用户密码状态
chage -d 0 lamp     #强制 lamp 用户在第一次登陆时必须修改密码.便于批量管理。

  1. userdel 用户名 :删除用户
userdel -r        #删除用户及家目录

手动删除用户:
vi /etc/passwd
vi /etc/shadow
vi /etc/group
vi /etc/gshadow
rm -rf /var/spod/mail/lamp #删除用户邮箱
rm -rf /home/lamp/ #删除用户的家目录

  1. id 用户名 :可以査询用户的UID、GID 和附加组的信息
  2. su - 用户名 :切换用户。
su - lxn            # '-' 代表连带环境变量一起切换,不能省略,否则用户身份切换不完全   
                    # ‘-’ 左右各一个空格
su -                # 普通用户切换到 root 需要密码,
                    # su - == su - root
  1. groupadd 组名:添加组
  2. groupdel 祖名:刪除用户组
    要删除的组不能是其他用户的初始组,也就是说这个组中没有初始用户才可以删除。如果组中有附加用户,则删除组时不受影响
  3. gpasswd 组名:把用户添加进组或从组中删除
 gpasswd -a 用户名 组名                    #把用户加入组
 gpasswd -d 用户名 组名                    #把用户从组中删除
  1. newgrp 组名 :切换用户的有效组
[lamp@localhost ~]$ touch test1               #创建文件test1
[lamp@localhost ~]$ ll test1
-rw-rw-r-- 1 lamp lamp 01月14 05:43 test1     #test1文件的默认属组是lamp组
[lamp@localhost ~]$ newgrp group1             #切换lamp用户的有效组为group1组
[lamp@localhost ~]$ touch test2               #创建文件test2
[lamp@localhost ~]$ ll test2
-rw-r--r-- 1 lamp group1 01月 14 05:44 test2   #test文件的默认属组是group1组

三、sudo权限管理机制:

管理员授权普通用户去执行一些 root 执行的操作, 不需要知道root密码。 Linux为普通用户添加sudo权限,参考链接:https://www.linuxidc.com/Linux/2017-01/139361.htm

四、文件权限 / 目录权限的含义

五、修改权限

参考:http://c.biancheng.net/view/839.html

猜你喜欢

转载自blog.csdn.net/qq_40443457/article/details/88052036