JAVA中设置drwxr_x___权限_Linux中权限列中的加号及点的代表的含义

e59215b3db027462000db19dd54d0ba6.png

一、综述Linux中,ls -l命令可谓是最常用不过了。命令显示结果中的第一列也是我们比较关注的地方,一般说法是表示权限的字符占10个位置。可是,我们也经常看到在这一列中第十一个位置也有内容显示,最常见的非那个点(.)莫属了,还有加号(+)也会出现在这个位置,这到底是怎么回事呢?让我们亲手来实践一下吧?

二、关于权限列内的点(.)2.1 让我们来看一下根目录。

[root@DCGH ~]# ls -lZ /

lrwxrwxrwx. root root system_u:object_r:bin_t:s0 bin -> usr/bin

dr-xr-xr-x. root root system_u:object_r:boot_t:s0 boot

drwxr-xr-x. root root system_u:object_r:device_t:s0 dev

drwxr-xr-x. root root system_u:object_r:etc_t:s0 etc

drwxr-xr-x. root root system_u:object_r:home_root_t:s0 home

lrwxrwxrwx. root root system_u:object_r:lib_t:s0 lib -> usr/lib

lrwxrwxrwx. root root system_u:object_r:lib_t:s0 lib64 -> usr/lib64

drwxr-xr-x. root root system_u:object_r:mnt_t:s0 media

drwxr-xr-x. root root system_u:object_r:mnt_t:s0 mnt

drwxr-xr-x. root root system_u:object_r:usr_t:s0 opt

dr-xr-xr-x. root root system_u:object_r:proc_t:s0 proc

dr-xr-x---. root root system_u:object_r:admin_home_t:s0 root

drwxr-xr-x. root root system_u:object_r:var_run_t:s0 run

lrwxrwxrwx. root root system_u:object_r:bin_t:s0 sbin -> usr/sbin

drwxr-xr-x. root root system_u:object_r:var_t:s0 srv

dr-xr-xr-x. root root system_u:object_r:sysfs_t:s0 sys

drwxrwxrwt. root root system_u:object_r:tmp_t:s0 tmp

drwxr-xr-x. root root system_u:object_r:usr_t:s0 usr

drwxr-xr-x. root root system_u:object_r:var_t:s0 var

2.2 在HOME目录分别创建一个文件和目录,观察权限了第十一个位置的详细情况。

[root@DCGH ~]# touch DCGH

[root@DCGH ~]# mkdir DCGH-DIR

[root@DCGH ~]# ls -l

总用量 0

-rw-r--r--. 1 root root 0 3月 28 10:23 DCGH

drwxr-xr-x. 2 root root 6 3月 28 10:24 DCGH-DIR

2.3 查看本机SELinux状态,并列举本目录下文件和目录关于SELinux的基本情况。

[root@DCGH ~]# getenforce

Enforcing

[root@DCGH ~]# ls -lZ

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 DCGH

drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 DCGH-DIR

3.4 关闭SELinux,再创建实验文件和目录,再次列举本目录及根下文件和目录关于SELinux的基本情况。

[root@DCGH ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

[root@DCGH ~]# reboot

[root@DCGH ~]# getenforce

Disabled

[root@DCGH ~]# ls -lZ

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 DCGH

drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 DCGH-DIR

[root@DCGH ~]# touch DCGH-later

[root@DCGH ~]# mkdir DCGH-later-dir

[root@DCGH ~]# ls -lZ

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 DCGH

drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 DCGH-DIR

-rw-r--r-- root root ? DCGH-later

drwxr-xr-x root root ? DCGH-later-dir

[root@DCGH ~]# ls -lZ /lrwxrwxrwx. root root system_u:object_r:bin_t:s0 bin -> usr/bin

dr-xr-xr-x. root root system_u:object_r:boot_t:s0 boot

drwxr-xr-x root root ? dev

drwxr-xr-x. root root system_u:object_r:etc_t:s0 etc

drwxr-xr-x. root root system_u:object_r:home_root_t:s0 home

lrwxrwxrwx. root root system_u:object_r:lib_t:s0 lib -> usr/lib

lrwxrwxrwx. root root system_u:object_r:lib_t:s0 lib64 -> usr/lib64

drwxr-xr-x. root root system_u:object_r:mnt_t:s0 media

drwxr-xr-x. root root system_u:object_r:mnt_t:s0 mnt

drwxr-xr-x. root root system_u:object_r:usr_t:s0 opt

dr-xr-xr-x root root ? proc

dr-xr-x---. root root system_u:object_r:admin_home_t:s0 root

drwxr-xr-x root root ? run

lrwxrwxrwx. root root system_u:object_r:bin_t:s0 sbin -> usr/sbin

drwxr-xr-x. root root system_u:object_r:var_t:s0 srv

dr-xr-xr-x root root ? sys

drwxrwxrwt. root root system_u:object_r:tmp_t:s0 tmp

drwxr-xr-x. root root system_u:object_r:usr_t:s0 usr

drwxr-xr-x. root root system_u:object_r:var_t:s0 var

通过上面的例子,我们可以看出来,这个点(.)不是没有用的,而是作用巨大,我们平时没怎么注意而已。开启SELinux后创建的文件和目录都会在权限列显示这个点的,关闭SELinux后创建的文件和目录在权限列是不会显示这个点的,之前创建的文件或目录保持不变。

三、关于权限列的加号(+)

3.1 了解过Linux中ACL权限设置的朋友对于这个加号肯定不陌生。不过还是让我们通过实验来验证一下。

[root@DCGH ~]# setfacl -m u:dcgh:rwx *

[root@DCGH ~]# ls -lZ

-rw-rwxr--+ root root unconfined_u:object_r:admin_home_t:s0 DCGH

drwxrwxr-x+ root root unconfined_u:object_r:admin_home_t:s0 DCGH-DIR

drwxrwxr-x+ root root ? DCGH-DIR-later

-rw-rwxr--+ root root ? DCGH-later

[root@DCGH ~]# setfacl -b *

[root@DCGH ~]# ls -lZ

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 DCGH

drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 DCGH-DIR

drwxr-xr-x root root ? DCGH-DIR-later

-rw-r--r-- root root ? DCGH-later

我们可以看到,加了ACL权限控制之后,之前具有SELinux属性的文件和目录的权限列最后一个位置全部变成了加号(+)。移除原来的ACL权限之后,恢复原样。

四、总结

4.1 Linux权限列的点不是无意义字符。在开启SELinux的情况下创建的目录和文件有具有这个点,权限列有这个点说明该目录或文件以及设置了SELinux相关的权限。在禁用SELinux权限之后,在之前开启SELinux权限时创建的文件或目录保持原来的权限不便,权限列的点依然显示。新创建的目录或文件在权限列无这个点显示。

4.2 权限列中最后一个位置如果是加号,说明这个目录或文件已经设置了ACL权限相关的内容。如果加号存在,则已经有点的目录或文件,点的显示会被覆盖,但原来的SELinux属性保持不变

<think>好的,我现在需要帮用户分析一个Linux目录的权限表。用户给出了`ls -l /home/oracle`的输出,里面包含了多个目录的权限信息。首先,我得先回忆一下`ls -l`的输出格式,确保自己理解正确。 用户之前问过关于`chmod -R 775`的问题,现在又给出了具体目录的权限情况,可能是在实际应用中遇到了权限设置的问题,或者想确认当前权限是否符合预期。接下来,我需要逐一解析每个字段的含义,特别是权限部分。 首先,每个条目的第一权限字符串,比如`drwxrwxr-x.`,这里开头的`d`表示目录,接下来的三组`rwx`分别对应所有者、所属组和其他用户的权限。需要注意后面(.),这可能与SELinux上下文有关,但用户可能更关注权限本身。 然后,链接数、所有者、所属组、大小、日期和目录名这些信息也需要简要说明,但用户可能更关心权限部分。比如`app`目录的权限是`drwxrwxr-x`,而其他目录如`Desktop`是`drwxr-xr-x`。这里需要对比不同目录的权限差异,解释为什么`app`目录的权限更开放。 接下来,用户可能想知道这样的权限设置是否合理,是否存在安全风险,或者是否符合最佳实践。比如,`app`目录的所有者和组都是`oracle`和`oinstall`,而其他用户有读和执行权限,但没有写权限。这可能适用于共享环境,但需要提醒用户注意敏感数据的安全性。 另外,用户可能是在部署Oracle数据库时遇到问题,或者需要确认目录权限是否正确。需要结合Oracle的安装要求,指出这些权限是否符合标准,或者是否需要调整。例如,Oracle通常要求某些目录有特定的权限设置,确保数据库进程能够正常访问。 还要考虑用户可能的后续问题,比如如何修改权限,或者为什么某些目录权限不同。需要给出建议,比如使用`chmod`或`chown`进行调整,并提醒谨慎使用递归选项`-R`,尤其是在生产环境中。 最后,总结这些权限设置的意义,强调权限管理的重要性,特别是在多用户或生产服务器上,确保安全性和功能性的平衡。</think>--- ### **命令输出解析** 你提供的 `ls -l /home/oracle` 输出显示了 `/home/oracle` 目录下的所有子目录及其权限信息。以下是逐项解释: --- #### **1. 整体结构** ```bash total 0 drwxrwxr-x. 5 oracle oinstall 55 Mar 15 18:31 app drwxr-xr-x. 2 oracle oinstall 6 Mar 15 17:07 Desktop ...(其他类似条目) ``` - **`total 0`**:目录下所有文件/子目录占用的磁盘块总数(单位为 KB),此处为 0 表示目录本身元数据占用空间极小。 - **每一行的含义**(以 `app` 目录为例): ``` drwxrwxr-x. 5 oracle oinstall 55 Mar 15 18:31 app ``` | 字段 | 说明 | |--------------------|----------------------------------------------------------------------| | `drwxrwxr-x.` | 文件类型与权限(见下方分解)。 | | `5` | 硬链接数量(目录的硬链接数包含 `.` 和子目录的 `..`)。 | | `oracle` | 文件/目录的所有者(Owner)。 | | `oinstall` | 文件/目录的所属组(Group)。 | | `55` | 文件/目录的大小(单位为字节)。 | | `Mar 15 18:31` | 最后修改时间。 | | `app` | 目录名称。 | --- #### **2. 权限分解** 以 `app` 目录的权限 `drwxrwxr-x.` 为例: - **第1个字符 `d`**:文件类型标识。`d` 表示目录,`-` 表示普通文件。 - **后续9个字符**:权限模式,分为三组: 1. **所有者权限 `rwx`** - `r`(读):可出目录内容。 - `w`(写):可在目录中创建/删除文件。 - `x`(执行):可进入目录或访问其元数据。 2. **所属组权限 `rwx`** - 组成员拥有与所有者相同的权限(读+写+执行)。 3. **其他用户权限 `r-x`** - `r`(读)和 `x`(执行):其他用户可查看目录内容并进入目录,但不可修改。 - **末尾的 `.`**:表示该目录启用了 **SELinux 安全上下文**(仅在支持 SELinux 的系统显示)。 --- #### **3. 关键目录分析** | 目录名称 | 权限 | 所有者/组 | 说明 | |---------------|-------------------|----------------|----------------------------------------------------------------------| | **`app`** | `drwxrwxr-x` | oracle/oinstall| 开放权限:所有者和组可读写执行,其他用户可读执行(适合共享开发目录)。| | **`Desktop`** | `drwxr-xr-x` | oracle/oinstall| 保守权限:所有者可读写执行,组和其他用户仅可读执行(保护用户私有目录)。| | 其他目录 | 同 `Desktop` | oracle/oinstall| 默认权限,防止非所有者修改用户个人文件。 | --- ### **权限差异对比** - **`app` vs 其他目录**: - `app` 的组权限为 `rwx`,而其他目录的组权限为 `r-x`。 - **目的**:`app` 可能是团队协作目录,允许组成员修改内容;其他目录(如 `Desktop`)为个人使用,限制组和其他用户的写入权限。 --- ### **安全性与建议** 1. **`app` 目录权限** - **优势**:便于组内协作开发。 - **风险**:若组成员不可信,可能误删或篡改文件。 - **建议**: - 对敏感文件单独设置更严格权限(如 `640`)。 - 使用访问控制表(ACL)细化权限: ```bash setfacl -m g:developers:rwx /home/oracle/app ``` 2. **其他目录权限** - 默认权限 `drwxr-xr-x` 是安全的,符合用户目录的典型配置。 --- ### **扩展说明:SELinux 上下文** - **权限末尾的 `.`**:表示该文件/目录有 SELinux 安全上下文(如 `ls -Z` 可查看)。 - **若需禁用**:需修改 SELinux 模式(不推荐生产环境禁用)。 --- ### **总结** - **当前配置目的**: - `app` 目录用于协作开发,开放组内写入权限。 - 其他目录(如 `Desktop`)限制组和其他用户的修改权限,保护用户隐私。 - **适用场景**: - 多用户环境中共享开发目录与私有目录共存的情况。 - **操作建议**: - 定期检查权限(尤其是递归设置的目录)。 - 结合 `chown` 和 `chmod` 精细化控制权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值