LinuxCast学习笔记十六:permission

本文详细介绍了Linux系统的权限管理机制,包括读、写和执行的基本权限,以及如何通过chown、chgrp和chmod命令来修改文件的所有者、所属组和权限。此外还介绍了setuid、setgid和stickybit等特殊权限的作用及设置方法。


         权限是Linux 中最为重要的部分,主要实现对计算机使用用户、使用组及运行进程访问资源的限制。权限一般分为三种,读、写和执行。

         对目录是否有执行的权限意味着是否能否发现该目录并打开,对文件的有读的权限就有下载的权限。

         当我们在执行ls –al命令的时候就可以发现每个文件对应的权限,所属用户与所属组还有就是创建的上期及大小还有文件名。

         对文件权限进行修改命令:

         chownusername filename   改变文件所属用户

         -R参数递修改该目录下的所有文件属于用户

         chgrp        username filename 改变文件所属组

         chmod模式 文件

         模式为以下格式:

         ugo分别代表用户、组及其他

         a代表所有ugo

         +-可以增加删除对应权限

         rwx分别对应了二进制方式的权限数字,分别为4、2、1

 

如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置.

         setgid:该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.

setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.

sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于

该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件

但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录

具有写权限, 也不能删除该文件.

下面说一下如何操作这些标志:

操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,

 

1) chmod u+s temp — 为temp文件加上setuid标志. (setuid 只对文件有效)

 

chmod g+s tempdir — 为tempdir目录加上setgid标志 (setgid 只对目录有效)

 

chmod o+t temp — 为temp文件加上sticky标志 (sticky只对文件有效)

 

引用博文:http://blog.chinaunix.net/uid-26642180-id-3378119.html

### 问题分析 在 Android 系统中,`/data/system` 是一个高度敏感的目录,通常只有系统级别的权限才能访问。当尝试使用 `ls` 命令查看该目录的内容时,如果没有适当权限,就会触发 `Permission denied` 错误 (引用[^1])。 --- ### 解决方案 #### 方法一:获取 Root 权限 如果设备已获得 Root 权限,可以通过以下步骤解决问题: 1. **启用 ADB Shell** 连接设备并通过 ADB 工具进入 shell 模式: ```bash adb shell ``` 2. **切换到 Superuser 模式** 输入以下命令以提升权限: ```bash su ``` 3. **再次尝试列出目录内容** 成功切换到超级用户模式后,重新执行 `ls` 命令: ```bash ls /data/system ``` 此时应该可以看到 `/data/system` 目录下的文件和子目录清单。 --- #### 方法二:检查 SELinux 设置 Android 设备上的 SELinux 安全模块可能会限制对某些目录的访问。可以暂时将 SELinux 切换到宽容模式来进行测试: 1. **通过 ADB 修改 SELinux 模式** 执行以下命令将 SELinux 设置为 Permissive 模式: ```bash adb shell setenforce 0 ``` 2. **验证更改是否生效** 使用以下命令确认当前 SELinux 状态: ```bash getenforce ``` 如果返回值为 `Permissive`,则说明修改成功。 3. **重试 `ls` 命令** 再次尝试访问 `/data/system` 目录: ```bash ls /data/system ``` 需要注意的是,这种方法仅适合短期调试用途,不应长期保持 Permissive 模式以免影响系统安全性。 --- #### 方法三:利用第三方工具间接访问 如果不方便直接操作终端,也可以借助一些支持 Root 功能的应用程序来浏览 `/data/system` 目录。例如 File Explorer 类应用(如 ES 文件浏览器),在其高级功能菜单中开启 Root 支持后再导航至目标路径即可完成类似任务。 --- ### 注意事项 即便拥有必要权限,在未经许可的情况下随意篡改或删除 `/data/system` 下面的重要配置项可能导致不可逆后果甚至砖机风险,请务必谨慎行事! --- ### 总结代码示例 以下是综合上述方法的一个简单脚本实例供参考: ```bash #!/bin/bash # Step 1: Connect via ADB and switch to superuser mode adb shell su # Optional Step 2: Temporarily change SELinux enforcement level if needed setenforce 0 # Final Step: List contents of the restricted directory ls /data/system ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值