权限

文件/目录基本权限

访问权限 文件 目录

可读(read) 允许查看文件内容cat 显示目录列表ls
可写(write) 允许修改文件内容 vi 允许在目录中新建、移动、删除文件或子目录 touch,rm,mkdir
可执行(execute) 允许运行程序(作为命令使用) 切换目录cd,检索(find)

归属(所有权)
文件拥有者(owner) : 拥有该文件或目录的用户帐号
属组(group) : 拥有该文件或目录的组帐号

其他人(others) : 除了属主和属组的其他人

文件所属范围越小,优先级越大 (优先级: 文件所有者 > 文件所属组 > 其他用户)

如何解读文件和文件夹的权限
#ls -l
drwxr-xr-x 2 root root 4096 2月 26 18:46 etc
文件类型/ 访问权限 连接数 所有者 属组 大小(字节B) 文件修改时间 文件名
认清文件类型——> 看文件或文件夹所属用户和组 ——> 查看当前用户 ——> 定位权限范围

如何定位权限范围
当前用户文件所属主:只须看前三个字符(文件所有者优先级最大)
当前用户不是文件属主:1)该用户不是文件所属组成员,则看后三个字符
2)该用户文件属组成员,则看中间三个字符(文件属组优先级大于其他用户)

:能否删除文件和更改文件名不是看文件本身的权限,而是看文件所在目录的权限

规律
文件 rwx r-x rw- r-- --- (--x 无意义 -wx 意义不大)
文件夹 rwx r-x -wx --x --- ( 无x 毫无意义 )

#chmod
#chmod [ugoa] [+—=] [rwx] 文件/目录 [ugoa] :属主、属组、其他用户、所有用户
#chmod nnn 文件/目录 [+—=]:增加、去除、设置权限
-R --recursive

#chown (必须是root,普通用户无法使用该命令; 用户和组必须存在)
#chown 属主 文件
#chown :属组 文件
#chown 属主:属组 文件

#chgrp (必须是root或者文件的所有者;普通用户必须是新组的成员
$chgrp 属组 文件
#chgrp 属组 文件
-R --recursive

操作 可执行的用户
chmod root和文件所有者
chgrp root和文件所有者(必须是组成员)
chown 只有root

在内核级别,文件的初始权限666 (一个文件被初始为可执行的话是很危险的)
在内核级别,文件夹的初始权限777
由于系统默认的umask值,所以新建 文件/目录 的权限不会是 666/777 umask是初始权限去掉将设置的权限所得,不是单纯的相减
#umask 查看当前umask
#umask nnn 临时改变默认权限
$umask nnn
#grep umask /etc/bashrc (不推荐修改系统默认umask)

登录shell 退出shell
用户登入系统到退出期间启动的脚本
登入shell
一 1. /etc/profile ——> /etc/profile.d/*.sh
2. ~/.bash_profile—> ~/.bash_login—>~/.profile
| 退出shell
\|/ _ _ _——> ~/bash_logout
二 1 ~/.bashrc ——> /etc/bashrc ——
:在字符界面下打开的伪终端 ??
:#su -user (一 —> 二)
:#su user (二)

/etc/profile(所有用户环境变量)
/root/.bash_profile(一个用户环境变量)
/etc/.bashrc (存放所有用户的别名或命令)
~/.bashrc (存放一个用户的别名或命令)
优先级 ~/.bash_profile > /etc/profile
同理 ~/.bashrc > /etc/bashrc

#find -perm
#find /etc -perm 750 -exec ls -ld {} \; 精确查找
#find /etc -perm -750 -exec ls -ld {} \; ( “—”查找权限范围内)
#find /etc -perm +750 -exec ls -ld {} \; ("+" 查找范围比较大,一般不用)

链接文件的权限为777
一般用户的家目录权限为700,所属用户和组都是自己
————————————————————————————————————
文件/目录的隐藏权限 和 特殊权限

隐藏权限

#chattr :设置文件/目录的隐藏权限
#chattr [+—=] [ai] 文件/目录
-R recursive
-a 可以增加文件内容,但不能修改和删除
-i 锁定保护文件
#lsattr : 查看文件的隐藏属性
#lsattr [Rda] 文件/目录
-R recursive
-d directory

管理员(root)没有权限只有两个原因:设置了隐藏权限,或selinux

特殊权限 (注:特殊权限对文件属主、文件属组、其他用户都生效,并非只对相应位置的对象生效,无优先级顺序)

SUID:4
SGID:2
Sticky : 1

SET位权限 :为可执行(有x权限的)文件设置
其他用户执行该文件时,将拥有属主或属组用户的权限
SUID:表示对属主用户增加SET位权限
SGID : 表示对属组内的用户增加SET位权限

:chmod u+s /usr/bin/passwd
:chmod u+s /usr/bin/vim
:chmod u+s /usr/sbin/useradd

Sticky:粘滞位权限 1.为公共目录(如:权限为777)设置
2.用户不能删除该目录中其他用户的文件
示例:/tmp /var/tmp ??

设置SET位,粘滞位权限
#chmod [ug] +/- s 可执行文件
#chmod [o] +/- t 目录
#chmod mnnn 可执行文件

#find -perm
:#find / -perm +1000 -exec ls -ld {} \;
:#find / -perm +7000 -exec ls -ld {} \;
————————————————————————————————————
ACL(Access Control List)

一个文件/目录的访问控制列表,可以针对任意指定的用户/组使用 权限字符分配rwx权限(不能用特殊权限)
ACL的优先级:按基本权限优先级

#setfacl 设置ACL
#setfacl [] 规则 文件/目录
-m modify 新增或修好ACL中的规则
-b base 删除所有ACL规则
-x 删除指定的ACL规则

规则
类型:特定的用户/组:权限
u(user) : uid/name : [rwx] 针对某一用户的权限
g(group) : gid/name : [rwx] 针对某一用户的权限
o(other) : : [rwx] (无多大意义)
m(mask) : : [rwx] 设置有效的最大权限(控制列表中的权限)

#getfacl 查看ACL
#getfacl 文件

ACL类型
存取型ACL(Access ACL): 文件或目录
预设型ACL (Default ACL): 只能对目录
设置了预设型ACL的目录,其下的所有文件或者子目录就都具有了主目录的ACL权限,
并且子目录也同样有预设的ACL权限
#setfacl -m default 类型:特定的用户/组:权限 目录
#setfacl -m 类型:特定的用户/组:权限 目录

总结:设置权限时按如下顺序进行,前三者能够实现就不用ACL,
一般对不同三者以上设置权限的情况下才使用ACL ,
设置ACL后文件显示的权限可能会改变,不要更改它
基本权限——> 隐藏权限 ——> 特殊权限 ——> ACL

————————————————————————————————————
使用sudo 提高执行权限

#sudo 可以替换其他用户身份执行命令(即委派指令给别人),若未指定目标用户,默认将视为root用户
#sudo [-u 用户名] 命令操作
-l list ??
-k kill ??
:#sudo -u user1 /bin/touch /tmp/file (注:命令使用绝对路径
:$sudo useradd user1 (以root用户身份创建用户)

配置文件
/etc/sudoers : 授权那些用户可以通过sudo方式执行那些指令
/etc/sudoers 文件基本格式
用户 主机名= 命令程序列表( 逗号隔开)
/ / \
被授权用户 在哪些主机中使用(可以使用IP) 允许执行哪些命令

root ALL=(ALL) ALL 所有命令
/ \
root 允许以哪些用户的身份执行命令,缺省为root

user1 localhost=/sbin/*,/usr/bin/*,!/bin/ifconfig eth0,!/usr/bin/vim (表禁止,注意使用*
%wheel ALL=(ALL) NOPASSWD:ALL (授权wheel组的用户不需验证密码即可执行所有命令)

为sudo配置项 定义别名
关键字:User_Alias 、Host_Alias 、Cmnd_Alias
在sudo配置行中,可以调用已经定义的别名
User_Alias ADMINS = jsmith, mikem,%tom
Host_Alias FILESERVERS = jerry,tom,tesengyia
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

编辑sudoers
#visudo (推荐,可以自动检查语法是否有误)
#vi /etc/sudoers

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值