linux第八节
文件权限及用户组管理命令:
类型 | 作用 | 命令 | 使用规则 | |
1 | 用户 | 创建新用户 | useradd | useradd 参数 用户名 |
2 | 用户 | 删除创建的账户 | userdel | usardel -参数 帐户名 |
3 | 用户 | 设置修改账户密码 | passwd | passwd -参数 帐户名 |
4 | 用户 | 切换账户 | su | su - 帐户名 |
5 | 用户 | 给普通用户提供额外的权限来完成原本root管理员才能完成的任务,将权限控制在 | sudo | sudo -参数 命令名称 |
6 | 工作组 | 创建工作组 | groupadd | groupadd -参数 工作组名 |
7 | 工作组 | 删除工作组 | groupdel | groupdel 工作组名 |
8 | 文件权限 | 查看文件权限的方法 | ls -l (查看目录下文件) ll (同上) ls -ld (查看当前目录) | |
9 | 文件权限设置 | 设置文件或目录权限 | chmod | chmod 参数 权限 文件名或目录名 |
10 | 设置文件所有者及工作组 | chown | chown -参数 所有者:所属组 文件名或目录名 | |
11 | 查看文件隐藏权限 | lsattr | lsattr 文件名 | |
12 | 设置文件隐藏权限 | chattr | chattr 参数 文件名 | |
13 | 文件访问控制列表 | 显示文件上的ACL信息 | getfacl | getfacl 文件名 |
14 | 设置文件ACL信息 | setfacl | setfacl -参数 文件名 |
文件权限及用户组管理:
root:账户
root账户为系统默认的管理员权限账户,拥有所有权限
使用原则:生产中尽量不适用root账户,使用普通用户进行工作,临时分配权限
UID(账户ID编号)
作用:系统管理账户是通过账户管理的UID进行的,相当于账户的身份证号,具有唯一性
系统使用无符号整数进行UID编号,范围为[0,4294967294]
UID编号分类:
系统管理员账户:
编号范围:[0,999]
root账户UID值为0
普通账户
编号范围:1000开始
注意:普通账户从1000开始编号,连续编号,即使系统管理员UID某些号码未使用,也不可以占用
查看: cat /etc/passwd
id命令:
作用:查看账户的UID值
格式:id 账户名
UID的特点:
UID不能冲突(相同)
Linux系统为了方便管理,引入了层级管理机制:公司(系统)->部门(工作组)->员工(账户)->权限(文件)
工作组:具有相同性质权限的一组账户
创建账户时会同时创建相同名称的工作组,默认状态下只有一个用户,账户也可以归纳到其他工作组中,称为“扩展组”,则一个账户有帐户名,工作组,扩展组。只能有一个工作组,可有多个扩展组
useradd命令
作用:创建新用户
格式:useradd 参数 用户名
参数:
常用:
-d:指定用户的家目录(默认为:/home/帐户名)
-u:指定用户的UID值
-g:指定一个初始的用户基本组(必须已存在)
一般:
-e:指定账户到期时间,格式:YYYY-MM-DD
-G:指定一个或多个扩展组
-N:不创建于该用户同名的扩展组
-s:制定该用户的默认Shell解释器(默认SHELL:/bin/bash)
例子:创建账户并登陆:
创建账户:useradd USERTEMP
设置密码:passwd USERTEMP (输入两次)
注销:logout
使用新账户及密码登陆
例子:创建账户时指定UID及家目录(示例)
帐户名:LINUXTEST UID=5555 工作组:USERTEMP 家目录:/home/test
命令:useradd LINUXTEST -u 5555 -g USERTEMP -d /home/test
例子:将账户设置成不允许登陆:
vim /etc/passwd (编辑文件)
定位到需要修改的账户所在行
点击i (进入编辑状态)
删除第七段:/bin/bash
增加:/sbin/nologin
esc Shift+:输入wq,保存并退出
logout:注销账号
重新登陆
userdel命令
作用:删除创建的账户
格式:usardel -参数 帐户名
参数:
-f:强制删除
-r:同时删除账户及用户家目录
工作组:
意义:将相同属性及权限的账户作为一组,组内账户属性等信息相同
分类:
基本工作组:创建工作组时同时创建同名的工作组
扩展组:可将账户加到其他工作组中
查看:more /etc/group
gid:工作组ID,号码规则同UID
groupadd命令:
作用:创建工作组
格式:groupadd -参数 工作组名
参数: -g:指定工作组的ID值
注意:不加-g时选项gid系统默认从1000开始编号
groupdel命令:
作用:删除工作组
格式:groupdel 工作组名
注意:若工作组中有已加入的账户,则不能删除,必须先移除账户后为空,才能删除
passwd命令:
作用:设置修改账户密码
格式:passwd -参数 帐户名
参数:
-l:锁定用户,禁止登陆
-u:解除锁定,允许账户登录
--sdin:允许标准输入修改密码
-d:允许用户可以用空格密码登陆系统
-e:强制用户在下次登陆时修改密码
-S:显示用户密码是否被锁定,以及密码所采用的加密算法
例子:
例:passwd 账户名 (直接修改密码)
例:passwd -le 账户名 (锁定并下次登陆时修改密码)
文件权限:
查看文件权限的方法:
ls -l (查看目录下文件)
ll (同上)
ls -ld (查看当前目录)
命令显示内容分析:
drwxr-xr-xr-x.133 root 8192 Apr 16 11:32 etc
第一列:drwxr-xr-x
d:文件类型,目录
.rwx:文件账户权限(读写执行)
r-x:工作组权限(读,无,执行)
r-x:其他账户的权限(读,无,执行)
.(点):表示开启SE Linux(强制安全fangwen控制)策略下创建的文件夹及目录
第二列:133
文件:硬连接数
目录:目录内子文件个数,目录内包含当前目录(.)及上级目录(..)的连接,则实际子文件个数要减去2
第三列:root表示账户名
第四列:root表示工作组名
第五列:8192,表示容量(文件大小)
第6列:表示最后一次修改时间
最后1列:目录或文件名
文件权限分析:
文件所属:
文件所有者:账户
所属组:工作组
其他账户
权限的意义:
文件:
r:可读,可以读取文件中的内容
w:可写,可以编辑,修改,删除等文件中的内容
x:可执行,可以运行一个脚本
目录:
r:可读,可以读取目录内容,(ls)
w:可以读目录修改文件名,目录可以增删文件
x:可执行,可以进入该目录(cd)
权限数字化:
原则:
r:4
w:2
x:1
图表:
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
权限分配 | 文件所有者 | 文件所属组 | 其他用户 |
分类:
rwx:4+2+1->7(完整权限)
rw-:4+2+0->6
r-x:4+0+1->5
r--:4+0+0->4
-wx:0+2+1->3
-w-:0+2+0->2
--x:0+0+1->1
---:0+0+0->0(无权限)
例如:
764:rwxrw-r--
642:rw-r---w-
153:--xr-x-wx
731:rwx-wx--x
例如:
rwxrw-r--:764
rw--w--wx:623
rw-r--r--:644
文件常用命令:
chmod:
作用:设置文件或目录权限
格式:chmod 参数 权限 文件名或目录名
例如:
touch tt1.txt
chmod 777 tt1.txt
ls -l tt1.txt
chown命令
作用:设置文件所有者及工作组
格式:chown -参数 所有者:所属组 文件名或目录名
例如:
touch tt2.txt
ls -l tt2.txt
chown user:user tt2.txt
ls -l tt2.txt
文件的隐藏权限:
原则:文件除了具备一般权限和特殊权限还具有隐藏权限,默认情况下无法查看
注意:若权限足够,但无法删除某文件,此时考虑是否含有隐藏权限
lsattr命令:
作用:查看文件隐藏权限
格式:lsattr 文件名
例如:
touch tt3.txt
lsattr 文件名
chattr命令:
作用:设置文件隐藏权限
格式:chattr 参数 文件名
参数:
i:无法修改文件(目录中不能删除,新建)
a:仅允许追加内容,不可删除,覆盖
S:文件变更后同步到硬盘
s:从硬盘中彻底删除,不可恢复(0填充文件所在存储区)
注意:参数前有”+或-“,加号代表增加功能,减号代表撤销功能
例如:
touch tt4.txt
lsattr tt4.txt
chattr +a tt4.txt (增加隐藏权限)
lsattr tt4.txt
rm -f tt4.txt (无法删除)
chattr -a tt4.txt (撤销隐藏权限)
rm -f tt4.txt (正常删除)
文件访问控制列表(ACL)
产生原因:由于权限是针对某一类账户进行设置,若单独针对指定用户进行独立权限设置,可使用ACL
注意:若对目录设置ACL,则目录内的文件会继承ACL,若文件设置成ACL,则
getfacl命令:
作用:显示文件上的ACL信息
格式:getfacl 文件名
例如:getfacl /root
setfacl命令:
作用:设置文件ACL信息
格式:setfacl -参数 文件名
参数:
-m:普通文件
-R:目录(递归)
-b:删除ACL
例如:给user用户分配/root目录的rwx权限
setfacl -Rm u:user:rwx /root (-Rm代表所有文件)
ls -ld /root (点变成加号,代表有ACL)
su user
cd /root
su命令:
作用:切换账户
格式:su - 帐户名
注意:减号代表完全切换,重新建立系统环境,不保留元环境参数
root账户切换到普通账户不需要验证密码,反之任意普通账户切换到root账户需验证密码
sudo命令:
作用:给普通用户提供额外的权限来完成原本root管理员才能完成的任务,将权限控制在
格式:sudo -参数 命令名称
参数:
-h:列出帮助信息
-l:列出当前用户可执行的命令
-u:用户名(UID):使用指定用户的身份执行命令
-k:清空密码的有效时间,下次再执行sudo时需要再次输入密码
-b:在后台执行指定的命令
-p:更改询问密码的提示语
编辑sudo配置文件的方法:
注意:sudo必须先配置才能使用
格式:visudo
使用上下键翻到99行(最后一屏)
点击i进入编辑状态,在root ALL=(ALL) ALL 后添加
帐户名 允许使用的主机号=(以谁的身份) 可执行的命令列表
普通帐户名 ALL=(ALL) ALL
点击esc ,shift+: 输入wq 保存
临时对命令提升权限:
a.格式:sudo 命令
b.例:sudo cat /etc/shadow