linux
Linux下,如何查看一个目录本身的权限信息?
一、Linux下,如何查看一个目录本身的权限信息?
Linux 系统上基础模型是 DAC, 全称是 Discretionary Access Control (自主访问控制)。
DAC模型是指对象(比如程序、文件、进程)的拥有者可以任意修改或者授予此对象相应的权限,也就是UGO+RWX/ACL权限控制。
权限有三个要素:主体(subject)、对象(object)、策略(policy),用于表示主体对哪个对象拥有什么访问策略,例如:用户小明对\opt\work文件夹拥有读访问策略。
文件的UGO+RWX权限控制
UGO
UGO是User(用户)、Group(用户所属组)和Other(其他用户)的简称:
User是文件的所有者(属主),一般是创建文件的用户,对该文件具有完全的权限。在一台允许多个用户访问的 Linux 主机上,可以通过文件的所有者来区分一个文件属于那个用户。只有文件的属主和超级权限用户root 修改文件的权限。
Group是文件所属用户组对文件的访问权限(属组)。假如有几个用户合作开发同一个项目,如果每个用户只能查看和修改自己创建的文件就太不方便了,也就谈不上什么合作了。所以需要一个机制允许一个用户查看和修改其它用户的文件,此时就用到组的概念的。我们可以创建一个用户组,然后把需要合作的用户都添加都这个组中。在设置文件的访问权限时,允许这个组中的用户对该文件进行读取和修改。
Other是除了以上两种情况的其他用户对该文件的访问权限。如果我想把一个文件共享给系统中的所有用户该怎么办?通过组的方式显然是不合适的,因为需要把系统中的所有用户都添加到一个组中。并且系统中添加了新用户该怎么办,每添加一个新用户就把他添加到这个组中吗?这个问题可以通过其他人的概念解决。在设置文件的访问权限时,允许其他人户对该文件进行读取和修改。
RWX
RWX则是Read(读)、Write(写)、eXecute(执行)的简称:
每个文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行三种权限。当用命令 ls -l
显示详细信息时,最左边一列为文件的访问权限。例如:
# ls -al
-rw-------. 1 root root 132 7月 4 2019 .xauthQur1Xx
-rw-------. 1 root root 132 7月 4 2019 .xauthYacMAK
-rw-------. 1 root root 132 3月 8 2020 .xauthykfSZU
drwxr-xr-x. 7 root root 154 10月 21 09:39 ydisk
drwxr-xr-x. 3 root root 69 11月 30 2021 .ydisk
权限列共有 10 个字符,第一个字符为文件类型,后面九个分为三组:第一组为 U(User) ,即文件属主对应的权限;第二组为 G(Group),即同组用户对应的权限;第三组为 O(Others),即其他用户对应的权限。每个字符的意义可用下图描述:
权限列的第一个字符(文件类型),-
代表普通文件;l
代表链接文件;d
代表目录文件。
文件与目录的权限有所区别,如下所示:
文件 | 目录 | |
---|---|---|
R(可读) | 读取文件内容 | 读包含在目录中的文件名称 |
W(可写) | 对文件内容进行编辑 | 可以写信息到目录中,即可以创建、删除文件、移动文件等操作 |
X(可执行) | 作为执行文件执行 | 可以进入目录;可以搜索(能用该目录名称作为路径名去访问它所包含的文件和子目录) |
举例说明:
- 对文件有
w
权限不能删除文件,需要对文件所在的目录有w
权限; - 对目录有
w
权限不能cd
进入目录,需要对目录有x
权限; - 对目录有
x
权限,只有在知道文件名并且有r
权限的时候才能访问目录下的文件; - 对目录必须有
x
权限才能cd
进入到目录,必须有rx
权限才能使用ls
列出目录清单 - 对目录有
w
权限,可以对目录中的任何文件或子目录进行创建、删除或修改操作,即使该文件或目录的所有者是其它用户也是如此。
文件的ACL权限控制
ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权限管理机制。它被设计为UNIX文件权限管理的一个补充。ACL允许你给任何用户或用户组设置任何文件/目录的访问权限。
在UGO+RWX权限中,用户对文件只有三种身份,就是属主、属组和其他人,但是在实际工作中,这三种身份实在是不够用,我们举个例子来看看:
根目录中有一个 /project 目录,这是班级的项目目录。班级中的每个学员都可以访问和修改这个目录,老师也需要对这个目录拥有访问和修改权限,其他班级的学员当然不能访问这个目录。需要怎么规划这个目录的权限呢?应该这样:老师使用 root 用户,作为这个目录的属主,权限为 rwx;班级所有的学员都加入 tgroup 组,使 tgroup 组作为 /project 目录的属组,权限是 rwx;其他人的权限设定为 0。这样这个目录的权限就可以符合我们的项目开发要求了。
有一天,班里来了一位试听的学员 st,她必须能够访问 /project 目录,所以必须对这个目录拥有 r 和 x 权限;但是她又没有学习过以前的课程,所以不能赋予她 w 权限,怕她改错了目录中的内容,所以学员 st 的权限就是 r-x。可是如何分配她的身份呢?变为属主?当然不行,要不 root 该放哪里?加入 tgroup 组?也不行,因为 tgroup 组的权限是 rwx,而我们要求学员 st 的权限是 r-x。如果把其他人的权限改为 r-x 呢?这样一来,其他班级的所有学员都可以访问 /project 目录了。
当出现这种情况时,普通权限中的三种身份就不够用了。ACL 权限就是为了解决这个问题的。在使用 ACL 权限给用户 st 陚予权限时,st 既不是 /project 目录的属主,也不是属组,仅仅赋予用户 st 针对此目录的 r-x 权限。这有些类似于 Windows 系统中分配权限的方式,单独指定用户并单独分配权限,这样就解决了用户身份不足的问题。
参考链接
Linux 权限管理与访问控制详解 https://jiayu0x.com/2014/12/23/Linux-authority-and-access-control/
了解Linux操作系统的权限管理 https://zhuanlan.zhihu.com/p/94240550
Linux DAC权限管理详解 https://blog.csdn.net/pwl999/article/details/110878563
悦库,为企业管好文件二、centos 查看网站目录权限
`在CentOS服务器上管理网站目录权限非常重要,这关系到网站的安全性和稳定性。通过查看网站目录权限,可以确保只有授权的用户可以访问、编辑或执行相关文件。
CentOS 查看网站目录权限的方法
要查看网站目录权限,可以使用ls和chmod命令。
使用 ls 命令查看网站目录权限
首先,我们可以通过ls -l命令查看网站目录的详细权限信息。在终端中输入以下命令:
ls -l /path/to/website/directory这将列出该网站目录下所有文件和子目录的权限信息,包括所有者、所属组和其他用户的权限,例如:
- -rwxr-xr-- 1 owner group 4096 Aug 10 10:01 index.
- drwxr-xr-x 2 owner group 4096 Aug 10 10:01 images
在上面的例子中,r表示读取权限,w表示写入权限,x表示执行权限。具体含义为:
- 第一组权限(owner):所有者对文件或目录具有的权限
- 第二组权限(group):所属组对文件或目录具有的权限
- 第三组权限(others):其他用户对文件或目录具有的权限
使用 chmod 命令更改网站目录权限
如果需要更改网站目录的权限,可以使用chmod命令。例如,如果要添加其他用户的写入权限,可以执行以下命令:
chmod o+w /path/to/website/directory
这将给其他用户添加写入权限。您还可以结合不同的权限标识符来对权限进行更精细的设置,例如:
chmod u=rw,go=r /path/to/website/directory
这将设置所有者具有读取和写入权限,而所属组和其他用户只有读取权限。
总结
通过上述方法,您可以轻松地查看和更改CentOS服务器上网站目录的权限,从而加强网站安全性,保护重要文件不被未经授权的用户访问或修改。定期检查和管理网站目录权限是服务器运维的重要一环,建议您在运维过程中始终关注和维护网站目录权限。
`三、linux查看tmp目录容量?
你说的应该是tmp目录对吧,使用cd /tmp切换到tmp目录下,使用ls /tmp查看tmp目录下面的文件。
四、linux查看非root权限?
可以直接用ls -al进行查看的,可以看到它的权限
五、linux没有查看内容权限?
那是因为对文件没有读权限,解决方法是通过命令chown来增加读权限。
六、linux创建目录权限不够怎么解决?
在 Linux 系统中,创建目录需要具备在该目录上的写权限。如果在创建目录时提示权限不够,可以尝试以下解决方法:
1. 使用 sudo 命令:sudo 是 Linux 中的一个命令,可以暂时提高当前用户的权限。在命令行中使用 sudo 命令,再执行创建目录的命令即可。
2. 更改目录所属用户或组:使用 chown 命令修改该目录所属的用户或组,并将当前用户添加到该组中,然后再次执行创建目录的命令。
3. 修改目录权限:使用 chmod 命令修改该目录的权限,使当前用户拥有写入权限。例如,将该文件夹的权限设置为 777,即可让所有用户都拥有读、写、执行权限。
以上是三种可能有效的解决方案。需要注意的是,在提高权限或修改文件夹属性时,请先确保自己具备足够的操作知识和风险意识,并慎重考虑是否要这样做,在不确定的情况下请咨询系统管理员或寻求其他专业人员帮助。
七、如何查看软件安装目录linux?
1. which
which命令查找出相关命令是否已经在搜索路径中,例子如下:
$which gcc //显示出GNC的C编译器安装在哪个目录
返回结果为:
/usr/bin/gcc
注意:如果which没有找到要找的命令,可以试试whereis,该命令搜索更大的范围的系统目录。有些系统上的which命令不显示用户没有执行权限的文件。例如
$which ipppd
/usr/bin/which :no ipppd in (/bin: /usr/bin: /sbin:/usr/sbin)
$whereis ipppd
ipppd: /usr/sbin/ipppd
$ls -l /usr/sbin/ipppd
-rwx------ 1 root root 124924 Feb 3 2000 /usr/sbin/ipppd
2. locate
locate命令用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。当我们建立好这个数据库后,就可以方便地来搜寻所需文件了。
即先运行:updatedb(无论在那个目录中均可,可以放在crontab中 )后在 /var/lib/slocate/ 下生成 slocate.db 数据库即可快速查找。在命令提示符下直接执行#updatedb 命令即可。
$locate signal.h
/usr/include/asm/signal.h
/usr/include/linux/signal.h
/usr/include/signal.h
/usr/include/sys/signal.h
3. rpm
如果用户知道自己要查找到软件包的名字,可以直接使用下面的命令。这个命令只在支持rpm的linux版本上有效,如redhat,centos,fedora和suse等。
$ rpm -q python //查找检查系统是否安装了python</p> <p>python-1.5.2-27
或者:$rpm -qa| grep python //这是两个命令的结合
rpm的其他用法:
rpm -qa (列出所有安装了的包)
rpm -e package (删除某个包)
rpm -qi package (查询某个包)
rpm -qf command (根据程序查询包的名字)
rpm -ql package (查询某个包所有的安装文件)
4.yum
yum的参数很多,以下是用于查找软件包的命令。但是也只支持特定的发型版本,centos下最常用的命令
$yum list //列出所指定的软件包,后可以加上你想查找的软件包的名字
$yum list installed //列出所有已安装的软件包
$yum info installed //列出所有已安裝的软件包信息
5.whereis
whereis是查找文件或者命令的所在目录
#whereis pwd //查找pwd命令所在的目录
6. find
这个命令可用来查找系统是否安装了指定的软件包,更重要的是也可以查找自己对软件包名称记忆不是很清晰的软件包。而且我想是这是所有linux和unix都支持的。find的查找范围很广,功能强大,再搭配用正则表达,效果很好,不过建议尽量缩小搜索范围,减少系统压力,毕竟,当系统文件多了,搜索耗费时间和资源的。
$find / -name "python" //从根目录开始查找包含”python“这个字符的文件和文件夹。
find的详细使用有如下例子:
# find . -maxdepth 1 -name *.jpg -print -exec convert 在当前目录下查找,查找深度为一,查找以.jpg结尾文件,并将其转化
# find / -name *.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限
# find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
# find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
# find / -user user1 搜索属于用户 'user1' 的文件和目录
# find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
# find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录
# find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
# find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
# find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
# find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包
八、linux怎么查看目录剩余空间?
Linux查看目录所在分区剩余空间大小可以使用命令:df -h 目录的绝对路径显示结果中会有哪个磁盘分区、所在分区总大小、使用量、空闲大小、挂载点等信息。-h参数表示以比较容易阅读的GB、MB、KB显示磁盘分区。例如,看/etc命令的剩余空间大小就可以:df -h /etc
九、linux如何查看temp磁盘目录?
linux系统通过命令ls -d查看temp磁盘目录
十、linux怎么查看文件特殊权限?
r 读权限 为用户提供可以阅读文件的权限 w 写权限 为用户提供可以更改文件的权限 x 执行权限 为用户提供可以执行文件的权限 比如当用户需要执行shell脚本时 就需要对脚本提供执行权限
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...