一、用户账号和组账号
1.1 用户账号和组账号概述
linux基于用户身份对资源访问进行控制
用户账号
超级用户: root用户是 Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。
普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
程序用户:在安装inux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、 demon、ftp、mail等。
组账号
基本组(私有组)
附加组(公共组)
组账号
基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4字段记录的即为该用户的基本组GID号。
附加组(公共组):用户除了基本组以外,额外添加指定的组。
UID和GID
UID (User IDentity,用户标识号)
GID (Group IDentity,组标识号)
UID:用户标识号
GID:组标识号
1.2 用户账户类型
Linux系统中有三种用户类型,分别为超级管理员、程序用户和普通用户。Linux中每个用户是通过user id(uid)来唯一标识的新建普通用户。
uid范围:
超级管理员:root,0 uid为0
程序用户:
centos6 1-499
centos7 1-999
普通用户:
centos6 500-60000
centos7 1000-60000
普通用户的uid值是可以调整的
1.3 用户账号文件/etc/passwd
保存用户名称、宿主目录、登录shell等基本信息
文件位置:/etc/passwd
每一行对应一个用户的账号记录
root:x:0:0:root:/root:/bin/bash
第一字段root:用户名
第二字段x:占位符
第三字段0:用户的UID号
第四字段0:用户基本组的GID号
第五字段root:用户全名信息的描述
第六字段/root:用户的宿主目录,也就是家目录所在位置
第七字段/bin/bash:用户登录的shell信息(/bin/bash:默认的shell登录信息;/sbin/nologin:不允许登录的shell信息)
1.4 用户账号文件/etc/shadow
用来保存用户的密码、账号有效期等信息
文件位置:/etc/shadow
每一行对应一个用户的密码记录
root:$6$uPMXIQhU1WGmiYSs$nq85tDO00khuywrLWRS088c.HmSpxS9GT3w..9mdO6VSJDcWpEb5CVNnF71NDv7/tqMeZFk3/WrSOtFAJAyR9.::0:99999:7:::
第一字段root:用户名
第二字段$6$uPMXIQhU1WGmiYSs$nq85tDO00khuywrLWRS088c.HmSpxS9GT3w..9mdO6VSJDcWpEb5CVNnF71NDv7/tqMeZFk3/WrSOtFAJAyR9:MD5算法加密(当为"*"或"!!"时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统)
第三字段:::上次修改密码的时间
第四字段0:密码的最短有效天数
第五字段99999:密码的最长有效天数
第六字段7:提前多少天警告用户密码将过期,默认为7
第七字段:::密码过期之后多少天禁用此用户
第八字段:::账号失效时间
第九字段:保留字段(未使用)
二、 UID
2.1 添加用户账号
useradd命令
useradd命令格式:useradd [选项]…用户名
常用选项:
命令 | 作用 |
-s | 修改默认shell类型 |
-u | 修改uid |
-M | 不建家目录 |
-d | 指定家目录 |
-e | 用户生效时间 |
-g | 指定基本组 |
-G | 指定附加组 |
-r | 随机生成系统用户 |
创建一个IKUN用户
useradd IKUN -u 2001 -M -s /sbin/nologin
2.2 设置/更改用户口令passwd
passwd命令
passwd命令格式:passwd [选项]…用户名
常用选项:
命令 | 作用 |
-d | 清空指定用户的密码,仅使用用户名即可登录系统 |
-l | 锁定用户账户,锁定的用户账号将无法再登录系统 |
-S | 看用户账户的状态(是否被锁定) |
-u | 解锁用户账户 |
-d
[root@clr ~]# passwd -d IKUN 清除用户的密码 gaozhenyang。 passwd: 操作成功
-l
[root@clr ~]# passwd -l ILUN #锁定用户账户,锁定的用户账户将无法再登录系统
锁定用户 gaozhenyang 的密码 。
passwd: 操作成功
[root@clr ~]# passwd -l ergouzi
锁定用户 ergouzi 的密码 。
passwd: 操作成功
-S
[root@clr ~]# passwd -S gaozhenyang #查看用户账户的状态是否被锁定
gaozhenyang LK 2023-04-02 0 99999 7 -1 (密码已被锁定。)
-u
[root@clr ~]# passwd -u IKUN #解锁用户账户gaozhenyang
解锁用户 IKUN 的密码。
passwd: 警告:未锁定的密码将是空的。
passwd: 不安全的操作(使用 -f 参数强制进行该操作)
[root@clr ~]# passwd -u -f IKUN #-f命令,强制解锁用户
解锁用户 IKUN 的密码。
passwd: 操作成功
设置用户密码之方法二:echo “密码” | passwd --stdin 用户名
[root@clr ~]# echo "abc" | passwd --stdin IKUN #将用户IKUN 的密码修改为abc
更改用户 IKUN 的密码 。
passwd:所有的身份验证令牌已经成功更新。
设置用户密码之方法三:echo <用户名>:<密码> | chpasswd
root@clr ~]# echo IKUN:123 | chpasswd #将用户IKUN 的密码修改为123
2.3 删除用户账号userdel
userdel命令
userdel命令格式:userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
userdel -r命令:删除用户并删除其家目录
[root@clr ~]# userdel -r IKUN #删除用户IKUN,并且连同家目录也一并删除
[root@clr ~]# ls /home/ #IKUN的家目录已被删除
chen
当系统中的某个用户帐号已经不再需要使用时(如该员工已经从公司离职等情况),可以使用userdel命令将该用户帐号删除。
使用userdel命令需要指定帐号名称作为参数,添加"-r"选项时可以将该用户的宿主目录一并删除。
三、 GID
3.1 添加组账号groupadd
groupadd命令
groupadd命令格式:groupadd [-g GID] 组账号名
groupadd -g命令:添加组,并设置指定的组账号
[root@clr ~]# groupadd -g 2468 mygroup #添加组mygroup,并设置组GID号为2345
[root@clr ~]# vim /etc/group
mygroup:x:2345:
3.2 添加删除组成员gpasswd
gpasswd命令
设置组帐号密码(极少用)、添加/删除组成员
gpasswd命令格式:gpasswd [选项]…组帐号名
常用选项
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
gpasswd -a命令:向组内添加一个用户
[root@clr ~]# gpasswd -a lisi wangwu#用户zhangsan加入到mygirl组中
正在将用户“zhangsan”加入到“mygirl”组中
[root@clr ~]# id zhangsan
uid=2004(zhangsan) gid=2004(zhangsan) 组=2004(zhangsan),1002(admin1),2345(mygirl)
gpasswd -d命令:从组内删除一个用户成员
[root@clr ~]# gpasswd -d IKUN chen #将用户IKUN从chen组中删除
正在将用户“IKUN”从“chen”组中删除
[root@clr ~]# id IKUN
uid=2004(IKUN) gid=2004(IUKN) 组=2004(IKUN),2345(Chen)
gpasswd -M命令:定义组成员列表,以逗号分隔
[root@clr ~]# useradd xiaohua #分别创建三个用户xiaohua,xiaowang,xiaozhang
[root@clr ~]# useradd xiaowang
[root@clr ~]# useradd xiaozhang
[root@clr ~]# gpasswd -M xiaohua,xiaowang,xiaozhang Chen #将这三个用户xiaohua,xiaowang,xiaozhang,一次性加入到Chen组中(-M定义组成员列表,定义即覆盖)
[root@clr ~]# vim /etc/group
Chen:x:2345:xiaohua,xiaowang,xiaozhang
3.3 删除组账号groupdel
groupdel命令
groupdel命令格式:groupdel 组账号名
groupdel IKUN #删除
grep "IKUN" /etc/group
四、 查询用户登录
4.1 查询用户所属组group
groups命令
查询用户所属的组
groups命令格式:groups [用户名]
groups [用户名]命令:查看指定用户所属组
[root@clr ~]# gpasswd -a abc root #将用户abc添加到root组中
正在将用户“abc”加入到“root”组中
[root@clr ~]# gpasswd -a abc ABC #将用户abc添加到ABC组中
正在将用户“abc”加入到“ABC”组中
[root@clr ~]# groups abc #查看用户abc所属的组
abc : abc root ABC
4.2 查询用户身份标识id
id命令
查询用户身份标识
id命令格式:id [用户名]
id [用户名]命令:查看指定用户的身份标识
[root@clr ~]# id abc #查看用户abc的身份标识
uid=1001(abc) gid=1001(abc) 组=1001(abc),0(root),10002(ABC)
4.3 查询用户账号登录属性finger
查询用户账号的登录属性
注意:
需要先进行安装finger软件包
finger命令格式:finger [用户名]
finger [用户名]命令:查询指定用户账户的登录属性
[root@clr /etc/yum.repos.d]# finger abc #查询用户账户abc的登录属性
Login: abc Name:
Directory: /home/abc Shell: /bin/bash
Last login 日 10月 30 19:28 (CST) on pts/1
No mail.
No Plan.
4.4 查询已登录主机用户信息w、who、user
w 、 who、users命令
查询已登录到主机的用户信息
w、who、users命令:查询登录到主机的用户信息
五、文件/目录的权限和归属
访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录(x是文件夹的最小权限)
对于文件夹而言,必须有执行的权限,否则无法进行任何操作
归属(所有权)
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
5.1 设置文件和目录的权限chmod
常用选项:-R 递归
chmod [nnn] 文件或目录命令:修改指定文件或目录的权限
修改a.txt文件权限为755
chmod -R [nnn] 目录命令:递归修改指定目录下所有子目录权限
5.2 设置文件和目录的归属chown
chown命令
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
常用选项
-R:递归修改指定目录下所有文件,子目录的归属
5.3 设置目录和文件的默认权限umask
umask作用
控制新建的文件或者目录的权限
新建的文件或者目录的权限为默认最大权限减去umask
普通文件的最大默认权限为6(rw),目录的最大默认权限为7(rwx)
umask的默认权限002
umask设置: umask 022
umask查看: umask
[root@localhost /opt]$ cd test #切换到test目录
[root@localhost/opt/test]$ ll
总用量 0
[root@localhost/opt/test]$ touch 1.txt #在test目录中创建文件1.txt
[root@localhost/opt/test]$ mkdir abc #在test目录中创建目录abc
[root@localhost /opt/test]$ ll
总用量 0
-rw-rw-r--. 1 abc abc 0 4月 3 16:36 1.txt #文件1.txt的权限为664(由来:文件默认权限666-002=664)
drwxrwxr-x. 2 abc abc 6 4月 3 16:36 abc #目录abc的权限为775(由来:目录默认权限777-002=775)
[root@localhost /opt/test]$ umask
0002 #文件和目录的umask权限为002
修改umask 000
[root@localhost /opt/test]$ rm -rf * #删除test目录下的所有文件和目录
[root@localhost /opt/test]$ ll
总用量 0
[root@localhost /opt/test]$ umask 000 #修改umask的权限为000
[root@localhost /opt/test]$ touch 1.txt
[root@localhost /opt/test]$ mkdir abcd
[root@localhost/opt/test]$ ll
总用量 0
-rw-rw-rw-. 1 abc abc 0 4月 3 16:46 1.txt #新创建的1.txt文件权限为666
drwxrwxrwx. 2 abc abc 6 4月 3 16:46 abcd #新创建的abcd目录权限为777
总结
1.创建用户时,一般情况下会用 -M -s 不创建家目录,并且指定它的shell
2.对/etc/passwd 和 /etc/shadow 下面信息的字段进行掌握,知道个各字段的含义
3.对于用户的uid 设置最好不要设置重复,每个uid最好做到只使用一次。
4.因为用户权限的问题,以上对用户用户组的操作,均由超级管理进行操作
5.认识权限的种类 rwx ,能够读懂文件和文件的权限信息
6.学会使用chmod 命令给文件或者文件夹分配相对应的权限
7.文件夹最小的权限是x 其他的权限也都是以x为前提才能使用