目录
Linux下权限概念:
- Linux下有两种用户:超级用户(root)、普通用户。
- 超级用户:可以再linux系统下做任何事情,不受限制 ;
- 普通用户:在linux下做有限的事情。
- 超级用户(root)的命令提示符是“#”,普通用户的命令提示符是“$”。
- su 切换用户;
- useradd -m mao :创建用户mao,并同时创建家目录;
- passwd 修改密码;
文件权限:
文件操作分用户:
- 文件所有者, u rwx 111
- 文件所属组 g rwx 111
- 其他用户o r-x 101
- 根据用户分操作:文件可读r, 可写w, 可执行操作, 可浏览 l(目录文件), 可执行,删除, 可进入x(目录文件)
- 在操作系统中使用二进制比特位存储权限信息:;
文件权限表示:
- 字符表示:
Linux表示 | 说明 |
r-- | 只读 |
--x | 仅可执行 |
-wx | 可写,可执行 |
rwx | 可读可写可执行 |
-w- | 仅可写 |
rw- | 可读可写 |
r-w | 可读可执行 |
--- | 无权限 |
- 8进制权限表示:
权限符号(读写执行) | 八进制 | 二进制 |
r | 4 | 100 |
w | 2 | 010 |
x | 1 | 001 |
rw- | 6 | 110 |
r-x | 5 | 101 |
-wx | 3 | 011 |
rwx | 7 | 111 |
--- | 0 | 000 |
- 系统默认 umask 后权限掩码002 ;777&(~mask) -- - - - - 777与mask取反
- 663 - 022 = 641 umask 文件默认的创建权限掩码, 最终权限=给定权限&(~掩码)
- 110 110 011 &000 010 010
110 110 011 &
000 010 010
111 101 010
110 100 010 6 4 2
chmod 功能:设置文件的访问权限
- chmod 修改文件权限
- 777 通过八进制数字修改
- chmod 777 file
- ① 用户表示符+/-=权限字符
- +:向权限范围增加权限代号所表示的权限
- -:向权限范围取消权限代号所表示的权限
- =:向权限范围赋予权限代号所表示的权限
- 用户符号:
- u:拥有者
- g:拥有者同组
- o:其它用户
- a:所有用户
目录的权限 概念:
- 可执行x权限: 如果目录没有可执行权限, 则无法cd到目录中.
- 可读r权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
- 可写w权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
- 粘滞位权限:
- 其他用户 在设置了粘滞位权限的目录下,可以创建目录,可以删除自己的文件,但是不可以删除别人的文件;
- 这个目录下的文件,目录所有者或root可以删除,主要针对其他用户在目录下的操作;
chmod +t
目录的权限:
- 进入一个目录,对于普通用户至少需要可执行权限。
- 在目录中创建一个新的文件时,用户需要可写可执行权限。
- 在目录中创建文件并进行显示,用户需要可读可写可执行权限。
- 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录有-r权限。
- 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令cd进入目录;
- 但是由于目录没有读权限,所以在目录下即使可以执行ls命令,但是仍然没有全部读出目录下的文档。
进入目录权限验证:
- 首先我们先创建一个目录: mulu;
- 并使用chmod 000 mulu 给目录haha设置成无权限。
- 我们先给user加上r权限,(即chmod u+r mulu),访问被拒绝;
- 我们在给user加上w权限(即chmod u+w mulu).进入目录访问的权限依然被拒绝;
- 我们再给user加上执行权限(即chmod u+x mulu)我们发现可以进入目录,所以目录需要的是可执行性权限
touch建立文档需要的权限验证:
- 首先创建一个目录 hehe;进入目录hehe;
- 使用touch,创建一个新的test.c,发现权限不够,不能使用touch。
- 我们给hehe加上可读权限(即chmod u+r),
- 我们进入hehe,使用touch,权限不够,还是不能创建。
- 加上可写权限(chmod u+w),
- 进入hehe,再次使用touch,这次可以创建一个新的test.c了。
- 综上所述,我们发现touch需要的是可写权限(即w权限)。
ls 查看目录需要的权限验证:
- 给hehe加一个r权限,再次进入hehe,ls一下出现了miao。说明ls需要的权限是r。
rm删除文档需要的权限:
- 将目录lala权限归零,在给x权限,然后进入lala;
- 删除lala下的温度dudu.c,权限不够;
- 在给lala r权限,进入目录lala ,依旧无法进行rm 操作;
- 在给lala w权限,进行rm操作,
- 进行ls查看,dudu.c已经被删除;
- 说明rm所需要的权限是w。
mv需要的权限:
- 我们先把qwe权限全部置零,然后我们给user加一个x的权限,进入qwe
- 将susu.c重命名为dudu.c,权限不够不能进行修改。
- 我们再给user加一个r的权限,进入qwe,将susu.c重命名为dudu.c,权限不够不能进行修改。
- 最后我们再给user加一个w的权限,再次进入qwe,将susu.c重命名为dudu.c;
- ls 进行查看.susu.c已经被改成了dudu.c;
- 说明mv所需要的权限是w。
啾咪~~~~