小伙伴们本次给大家带来的是Linux中的账号和权限管理,这里我们首先要明确的就是这个权限是文件或者目录的权限。接下来我们会从以下几个部分进行了解:
用户账号和组账号概述
Linux基于用户身份对资源访问进行控制
1.用户账号:
超级用户
普通用户
匿名用户(everyone)
程序用户(人为不可使用,单独管理系统中某个应用程序存在的服务)
2.组账号:组是系统用户权限的集合
基本组(私有组):伴随用户的创建而自行创建与用户同名
附加组(公共组)
3.UID和GID:查找标识:
UID(User IDentity,用户标识号)
GID(Group IDentify,组标识号)
此处补充:root用户是0、程序型用户是1-499、普通用户是500-60000
用户账号文件/etc/passwd
1.保存用户名称、宿主目录、登录Shell等基本信息:
文件位置:/etc/passwd
2.每一行对应一个用户的账号记录:
[root@localhost~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
我们以root:x:0:0:root:/root:/bin/bash为例详细看一下里面各每一项具体代表什么
用户账号文件/etc/shadow
保存用户的密码、账号有效期等信息
文件位置:etc/shadow
每一行对应一个用户的密码记录:哈希算法
接下来我们举例详细分析:
添加用户账号
1.useradd命令:useradd [选项]… 用户名
2.常用选项:
-u:UID
-d:创建用户的家目录
-e:指定失效时间 YYYY-MM-dd
-g:指定基本组
-G:指定附加组
-M:不创建家目录
-s:指定shell登录(/bin/bash 登录;/sbin/nologin 无法登录)
设置/更改用户口令passwd
1.passwd命令:passwd [选项]… 用户名
2.常用选项:
-l:锁定用户
-u:解锁用户
-S:查看用户状态
修改用户账号的属性usermod
1.usermod命令:usermod [选项]… 用户名
2.常用选项:
-l:锁定用户
-L:锁定用户
-U:解锁用户
以下选项与useradd命令中的含义相同:
-u:解锁用户
-d:创建用户的家目录
-e:指定失效时间 YYYY-MM-dd
-g:指定基本组
-G:指定附加组
-s:指定shell登录(/bin/bash 登录;/sbin/nologin 无法登录)
删除用户账号
1.Userdel命令:userdel [-r] 用户名
2.添加-r选项时,表示连用户的宿主目录一并删除
3.举例如下:
[root@localhost~]#useradd stu01
[root@localhost~]#ls -ld /home/stu01/
drwx------ 2stu01 stu02 4096 09-09 12:38 /home/stu01
[root@localhost~]#userdel -r stu01(这一步为删除用户账号stu01)
[root@localhost~]#ls -ld /home/stu01/
ls: /home/stu01/: 没有那个文件或目录
用户账号的初始配置文件
1.文件来源
新建用户账号时,从/etc/skel目录中复制而来
2.主要的用户出是配置文件
~/.bash_profile
:加载系统登录的时候会进行有效的加载
~/.bashrc
:在登陆shell环境时进行有效加载,同时包含登录系统
~/.bash_logout
:注销的时候进行加载
上面三个是当前系统登录用户的环境变量文件
/etc/profile
:系统的环境变量文件
组账号文件
1.与用户账号文件相类似
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息
2.示例:
添加组账号groupadd
1.Groupadd命令:groupadd [-g GID] 组账号名
2.示例:
添加删除组成员gpasswd
1.设置组账号密码(极少用)、添加/删除组成员:gpasswd [选项]… 组账号名
2.常用选项
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
查询账号信息
group命令:查询用户所属的组:group [用户名]
id命令:查询用户身份标识:id [用户名]
finger命令:查询用户账号的详细信息:finger [用户名]
w、who、users命令:查询一登录到主机的用户信息
文件/目录的权限和归属
1.访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动。删除文件或子目录
可执行x:允许运行程序、切换目录
2.归属(所有权)
属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
查看文件/目录的权限和归属
d rwx r-x r-x. 2 root root 6 8月 5 2107 tmpfiles.d
d:目录 -:文件 l:链接文件
rwx:属主 主人
r-x:属组 -代表不具备权限 r-只可以查看 ---没有任何权限
r-x:other 所有人包括匿名用户
root:属主
root:属组
6:单位字节,文件大小
8月 5 2107:创建时间
tempfiles.d:文件名
设置文件和目录的权限chmod
1.chmod命令
chmod [ugoa]分别表示属主、属组、其他用户、所有用户 [+-=]分别表示增加、去除、设置权限 [rwx] 文件或目录…
chmod nnn(3位八进制数)文件或目录
2.常用选项
-R:递归修改指定目录下所有子项的权限
设置文件和目录的归属chown
1.chown命令
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
2.常用选项
-R:递归修改指定目录下所有文件、子目录的归属
权限掩码umask
1.umask作用
控制新建的文件或者目录的权限
默认权限去除umask的权限就为新建的文件或者目录对的权限
2.umask设置:umask 022
3.umask查看:umask
示例:
将umsak设为000,新建目录或者文件,查看权限
将umsak设为022,新建目录或者文件,再查看权限
以上内容就是Linux中的账号和权限管理的相关理论部分,后面还会有针对理论进行的相关实验操作补充给大家,届时大家可以全程跟着实验部分进行一步一步的操作,谢谢!