1. 文件权限目录 html
小结: node
环境:在root环境下建立文件,修改权限,在oldboy 环境下查看修改 文件内容 web
*若是没有r权限,能够用vi编辑器,输入:wq!能够强制覆盖,原文件内容被清除,所以可用echo追加内容到文件。 shell
*可执行权限x 表示具备执行文件的权限 安全
① 文件自己要有执行权限才能执行 编辑器
./songGeedu.txt :Permission denied 权限不足 权限拒绝 ide
#./ 是路径 不要有空格 网站
下面三种方法都是经过其余命令实现的 ui
#. / 这里.是个命令 跟source 操作系统
source songGeedu.txt
sh songGeedu.txt
② 普通用户必须还要有r权限才可以执行,无r就不能执行
③ root 即时没有r权限,只要有x权限就能执行
④ root 用户 有没有不要紧,其余人有的权限它就能执行
*用户所属于组,一个用户能够所属多个组。用户组的权限能够理解为除root用户外所属该组的其余用户权限。用户组有权限,可是用户没有,用户组能够执行用户组给与的权利,一样的文件,看你是什么用户查看
[root@songGeedu ~]# ll -d /root/
dr-xr-x---. 5 root root 4096 May 23 18:49 /root/
[root@songGeedu ~]# ll -d /root/
dr-xr-x---. 5 root root 4096 May 23 18:49 /root/
[root@songGeedu ~]# cd /
[root@songGeedu /]# echo "songGeedu">>songGeedu.txt
[root@songGeedu /]# ll -h songGeedu.txt
-rw-r--r-- 1 root root 10 May 25 10:01 songGeedu.txt
[root@songGeedu /]# id oldboy
uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)
#属于其余用户
[root@songGeedu /]# echo "echo hello boy" >songGeedu.txt
[root@songGeedu /]# cat songGeedu.txt
echo hello boy
[root@songGeedu /]# ll -h songGeedu.txt
-rw-r---w- 1 root root 15 May 25 10:38 songGeedu.txt
[root@songGeedu /]# chmod u+x songGeedu.txt
[root@songGeedu /]# ll -h songGeedu.txt
-rwxr---w- 1 root root 15 May 25 10:38 songGeedu.txt
[root@songGeedu /]# . /songGeedu.txt
hello boy
文件属性要看文件自己的权限
文件名的修改要看上级目录的权限
A: 老师的下面没报./songGeedu.txt: line 2: I: command not found
B:songGeedu.txt里多写了其余内容,好比有个大写字母I
#由于咱们要看文本的执行权限,因此给文本中自带命令
r 具备浏览目录下文件以及子目录的权限 即 ls data
① 经过ls data能看见文件名,可是无权限访问目录下文件
② 经过ll ,全部的文件属性都是??,只能看到文件名
③ 只有r权限咱们是没法进入目录的
w 表示增长修改文件名的权限,必须配合x权限配合
① 增长不是内容,而是一个新的文件 文件名
② 修改 不是文件内容(这个看文件自己权限),只能修改文件名,重命名文件(文件名在目录的block,看目录的权限w就能够)
补充:咱们删除文件实际删除这个文件名字,这样就没法指向这个文件的inode节点,当没有文件名指向这个inode节点的时候,系统会同时释放inode节点和存放这个文件的数据块,并更新inode MAP 和block MAP 让这些位置 能够用于 放置 其余新的文件数据。
1.为何目录设置755 rwx r-x r-x,文件644 rw- r-- r—
系统安全,无论操做系统仍是网站站点目录,上面的755 644 是安全与便捷的临界点,大了不安全,小了操做繁琐。
① 目录755 文件611 是相对安全的权限
② 用户和用户组都是root
以上 是为 兼顾 安全和使用,在生产中咱们的文件(644)和目录(755)
应该保持默认权限和用户组(root root)便可,不可随意随意更改。
Linux系统默认权限方针: 知识容许浏览 查看 可是禁止 随意建立 修改 删除文件 和修改文件内容
2. 为何咱们建立的目录权限是755,文件是644,这是怎么来的?
文件的默认权限是由umask 控制的。umask 经过八进制数值来定义用户建立的文件或目录权限,umask数值表示禁止具体的权限。
网站存放目录 /var/www/html
网址为 swordsman –sed.html 拜访网站时,咱们设置权限为drwxr-xr-x root root www
#www 是属于里一个普通用户(web 服务)
用id 查看 用户属于哪一个组
[root@songGeedu ~]# useradd oldgirl -g root
[root@songGeedu ~]# id oldgirl
uid=501(oldgirl) gid=0(root) groups=0(root)
[root@songGeedu ~]# sed -n '61,64p' /etc/profile
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
[oldboy@songGeedu ~]$ umask
0002
[oldboy@songGeedu ~]$ id oldgirl
uid=501(oldgirl) gid=0(root) groups=0(root)
[oldboy@songGeedu ~]$ id -gn
oldboy
[oldboy@songGeedu ~]$ id -un
oldboy
文件的最大权限值666
目录的最大权限 777
设定umask 值 ,而后建立文件和目录,在经过ll或者ls –d 查看,
文件 666-007 659 660
目录 777-007 770
文件 666-122 544 644
目录 777-122 655
总结:临时:
umask 建立普通文件 对应的权限值 为666-umask 【奇数位加1】
目录文件 直接相减【777-umask】
工做中不须要修改umask 值,由于默认权限就是最好的
永久生效: 修改配置文件/etc/profile
[root@songGeedu ~]# ll -h /etc/passwd /etc/shadow /etc/group /etc/gshadow
-rw-r--r-- 1 root root 587 Apr 26 19:07 /etc/group
---------- 1 root root 480 Apr 26 19:07 /etc/gshadow
-rw-r--r-- 1 root root 1.2K May 26 00:15 /etc/passwd
---------- 1 root root 854 May 26 00:15 /etc/shadow
[root@songGeedu ~]# ll -h `which passwd`
-rwsr-xr-x. 1 root root 31K Feb 22 2012 /usr/bin/passwd
[root@songGeedu ~]# chmod u-s `which passwd`
[root@songGeedu ~]# ll -h `which passwd`
-rwxr-xr-x. 1 root root 31K Feb 22 2012 /usr/bin/passwd
setuid
【关于suid】
1.用户或属主对应头三位权限的x位若是有s 就表示setuid 权限,
当X位置上没有x,suid 就会显示S
2.suid 做用是让普通用户能够以root (或其余用户)的用户角色运行只有root (或者其余用户)才能运行的程序或命令,或者是程序命令自己没有权限操做的文件
3 仅对二进制命令生效,不能用 shell 等脚本上
4 二进制程序须要x权限配合
5 suid 权限仅仅是执行的那一段时间生效的
【案例】但愿oldboy 用户可以删除一个原来删除不了的文件?
a 设置上一级目录的写权限
b 给rm 命令设置suid 粗粒度,其余用户都有此权限,针对命令受权
c sudo 受权 针对用户受权 oldboy 有rm 权限,其余用户没有,细粒度
【setuid】
设置 setuid (简写suid)
chmod u+s file
chmod 4755 file
chmod 4644 file
【setgid】
做用: 对文件和目录设置
例如:chmod 2644 install.log 或者chmod g+s install.log
特别说明:
1. 与suid不一样的是,sgid既可针对文件也可针对目录设置
2. sgid 是针对用户组权限为修改的
【对文件来讲,sgid功能】
1. sgid 仅对二进制命令程序有效
2. 二进制命令程序须要有可执行权限x配合
3. 执行程序的任意系统用户均可以得到该命令程序在执行期间全部组的权限。
4. locate命令都具有slocate 组的权限