在上一章节中,我们介绍了基本使用者管理,在这一章节中,介绍档案之目录与档案系统权限。
不论是档案与目录都有权限,有了权限才可以控制使用者进行对应的档案与目录权限进行管理,相关的档案与目录管理权限所整理出的清单如下:
cd
指令切换进目录并当成当前的工作目录,通常也会需要与read读取的权限坐搭配,以清单方式找到目录底下所有的目录与档案,使用ls
指令并搭配-l
指令,并指定档案则可以将此档案的权限与拥有者等资讯列出,相关的指令执行输出讯息如下:
[rockylinux@workstation ~]$ ls -l home_list.txt
-rw-rw-r--. 1 rockylinux rockylinux 81 Sep 23 00:36 home_list.txt
若要查看目录的权限与拥有者,则还需要加上-d
之参数,选项可以组合起来或是分开都可以,相关的指令执行後输出的讯息如下:
[rockylinux@workstation ~]$ ls -l -d Downloads/
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Downloads/
[rockylinux@workstation ~]$ ls -ld Downloads/
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Downloads/
从上面输出的讯息得知,第一个字元所表示的讯息如下:
-
指的是一般的档案。d
指的是目录。l
指的是软连结(soft link)。b
和c
则是代表硬体装置或是特殊的目的的档案,如p
和s
。可以使用chmod
命令来改变使用者的存取权限,下列提供了几种符号来做改变使用者的权限:
透过上述的符号并搭配chmod
指令的使用,则可以得到下列的指令范例:
chmod u-w,g+x,o-w file
chmod u=rx,g=rx,o=rx file
chmod a+x file
上述第一个指令的意思是:
第二个指令的意思是:
第三个指令为:
数字方法以10进位来看,如下表示:
举例来说,上述的chmod u=rx,g=rx,o=rx file
指令改成数字的表示方法就会变成:chmod 555 file
,因为r与x之数字相加为5。chmod 644 file
则可以等价成chmod u=rw,g=r,o=r file
指令。
而比对权限的原则也很简单,首先可以先比使用者(user),接着再比群组(group),最後再比其他人(others)。
可以使用chown
指令将指定的档案或是目录的拥有者作改变,相关的指令用法如下:
chown rocky test_file
若是要将目录之拥有者改变,则需要一并将此目录底下的档案作改变的话,则需要加上-R之参数,这个参数指的是递回的意思,将指定的目录下走访此目录下所有的目录与档案,并将每个档案与目录的拥有者指定成rocky
,相关指令的用法如下:
chown -R rocky test_dir
若是只要改变群组的拥有者名称,则可以使用下列的指令做到:
chown :admins test_dir
除了上述的方式更改群组的拥有者之外,也可以使用chgrp
来进行群组拥有者的变更。
若是要同时改变使用者与群组的拥有,则可以使用下列的指令,而使用者与群组名称利用冒号(:)隔开:
chown visitor:guests test_dir
档案与目录有几个特殊权限列表,相关的列表如下:
cat
指令指定成这个权限,则可以将只有root权限的使用者档案也可以输出内容出来,这个权限对於目录不会有影响,相关的指令执行结果如下:[rockylinux@workstation ~]$ cat /etc/sudoers
cat: /etc/sudoers: Permission denied
[rockylinux@workstation ~]$ sudo chmod u+s /usr/bin/cat
[rockylinux@workstation ~]$ cat /etc/sudoers
## Sudoers allows particular users to run various commands as
.......
g+s(sgid),指的是不管是哪个使用者在这个目录下建立的档案或是目录,此档案或是目录所拥有的群组都不属於建立这个的群组,而是属於拥有g+s的目录群组。
一般用在公用的目录:o+t,设定完成之後,公用目录下的各个使用者所自己建立档案,其他人无法管理,只有建立的档案的使用者自己可以管理,当然,除了root使用者之外。
u+s之数字代表为4,g+s则代表是2,o+t则代表是1,不设定则为:0,若指令为:chmod 2770 directory
,则将此目录设定成g+s
6、而使用者设定成可以读取、编辑与执行,群组设定成可以读取、编辑与执行,其他的使用者则都没有权限可以存取指定的目录。
umask,指的是当使用者建立档案或是目录的时候预先会给定一个权限的设定,预设权限要怎麽知道确切的十进位数字是多少?有一个很简单的计算方式,最大的数字权限为:777,最小为:000,因此当umask设定成027时候,则算法如下:
因此预设的十进位数字为:640,此外,也可以使用umask
指令来暂时设定预设的权限,例如使用umask 027
即可以改变预设的权限,若要永久的设定,则可以更改/etc/profile或是/etc/bashrc之档案,当然也可以在使用者自己底下的设定档:.bashrc或是.bash_profile档案进行覆写设定。
<<: [第十二天]从0开始的UnityAR手机游戏开发-如何在辨识图卡时拨放影片01
对话设计的核心是对话的流程及其底层逻辑。 因此,在将界面重新设计为对话式时,需要从下往上开始。 适...
这篇是我看这篇的纪录 Building Lists and Navigation,我感觉学习曲线不算...
环境建立 先从这里下载 SystemC 2.3.3 到目标资料夹下(或者从这里下载其他版本) 记得准...
Vue:实做部落格最後一步骤,就是修改文章!上一篇已经了解如何将id生成,如此才可以做个别文章上的操...
今天是30天程序语言研究的第二十五天,由於最近写unix语言的东西用到很多,所以做了很多笔记,就想说...