android/storage/emulated/0 和/data/media/0 权限不同

标签 android linux permissions chmod chown

我有 LG G3 智能手机。 在文件系统探索期间,我发现了

/storage/emulated/0/... 目录(从系统接收到我的本地用户)具有不允许 chmod 和 chown 操作的权限。当我尝试将某些文件更改为 777 时,我收到了 0 个结果并且没有错误消息,但什么也没发生。 Total Commander 文件管理器的工作方式相同。

但是当我尝试直接更改文件系统许可时 /data/media/0/... 我可以做到。

/proc/sef/mounts 告诉我:

965 965 0:1 / / ro,relatime master:1 - rootfs rootfs ro
966 965 0:11 / /dev rw,nosuid,relatime master:2 - tmpfs tmpfs rw,seclabel,size=1447296k,nr_inodes=84929,mode=755
967 966 0:9 / /dev/pts rw,relatime master:3 - devpts devpts rw,seclabel,mode=600
968 966 0:17 / /dev/cpuctl rw,relatime master:4 - cgroup none rw,cpu
969 965 0:3 / /proc rw,relatime master:5 - proc proc rw
970 965 0:12 / /sys rw,relatime master:6 - sysfs sysfs rw,seclabel
971 970 0:10 / /sys/fs/selinux rw,relatime master:7 - selinuxfs selinuxfs rw
972 970 0:5 / /sys/kernel/debug rw,relatime master:8 - debugfs debugfs rw
973 970 0:14 / /sys/fs/cgroup rw,relatime master:9 - tmpfs none rw,seclabel,size=1447296k,nr_inodes=84929,mode=750,gid=1000
974 965 0:13 / /acct rw,relatime master:10 - cgroup none rw,cpuacct
975 965 0:15 / /mnt/asec rw,relatime master:11 - tmpfs tmpfs rw,seclabel,size=1447296k,nr_inodes=84929,mode=755,gid=1000
976 965 0:16 / /mnt/obb rw,relatime master:12 - tmpfs tmpfs rw,seclabel,size=1447296k,nr_inodes=84929,mode=755,gid=1000
977 965 259:8 / /system ro,relatime master:13 - ext4 /dev/block/platform/msm_sdcc.1/by-name/system rw,seclabel,data=ordered
978 965 259:11 / /data rw,nosuid,nodev,noatime master:14 - ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata rw,seclabel,noauto_da_alloc,resuid=1000,errors=continue,data=ordered
979 965 259:5 / /sns rw,nosuid,nodev,noatime master:15 - ext4 /dev/block/platform/msm_sdcc.1/by-name/sns rw,seclabel,noauto_da_alloc,errors=continue,data=ordered
980 965 259:4 / /persist-lg rw,nosuid,nodev,noatime master:16 - ext4 /dev/block/platform/msm_sdcc.1/by-name/drm rw,seclabel,noauto_da_alloc,errors=continue,data=ordered
981 965 259:6 / /mpt rw,nosuid,nodev,noatime master:17 - ext4 /dev/block/platform/msm_sdcc.1/by-name/mpt rw,seclabel,noauto_da_alloc,errors=continue,data=ordered
982 965 259:9 / /cache rw,nosuid,nodev,noatime master:18 - ext4 /dev/block/platform/msm_sdcc.1/by-name/cache rw,seclabel,noauto_da_alloc,errors=continue,data=ordered
983 965 179:19 / /persist rw,nosuid,nodev,noatime master:19 - ext4 /dev/block/platform/msm_sdcc.1/by-name/persist rw,seclabel,noauto_da_alloc,errors=continue,data=ordered
984 965 179:1 / /firmware ro,relatime master:20 - vfat /dev/block/platform/msm_sdcc.1/by-name/modem ro,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=cp437,iocharset=iso8859-1,shortname=lower,errors=remount-ro
985 965 259:10 / /cust ro,nosuid,nodev,relatime master:21 - ext4 /dev/block/platform/msm_sdcc.1/by-name/cust ro,seclabel,noauto_da_alloc,data=ordered
986 965 0:18 / /storage/emulated rw,nosuid,nodev,relatime - tmpfs tmpfs rw,seclabel,size=1447296k,nr_inodes=84929,mode=050,gid=1028
987 965 0:19 / /mnt/shell/emulated rw,nosuid,nodev,relatime master:22 - fuse /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other
988 965 0:19 /0 /storage/emulated/legacy rw,nosuid,nodev,relatime master:22 - fuse /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other
989 986 0:19 /0 /storage/emulated/0 rw,nosuid,nodev,relatime master:22 - fuse /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other
990 989 0:19 /obb /storage/emulated/0/Android/obb rw,nosuid,nodev,relatime master:22 - fuse /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other
991 986 0:19 /0 /storage/emulated/legacy rw,nosuid,nodev,relatime master:22 - fuse /dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other

992 991 0:19/obb/storage/emulated/legacy/Android/obb rw,nosuid,nodev,relatime master:22 - fuse/dev/fuse rw,user_id=1023,group_id=1023,default_permissions,allow_other

无法找到/storage/emulated/0 的挂载选项拒绝更改权限。还是一定是政治?

最佳答案

由于/storage 下的挂载点是通过 FUSE 管理的,因此它们不支持权限和所有权编辑。

要更改存储在内部 SD 中的文件的权限和/或所有权,您必须导航到/data/media/0(前提是您具有根权限),然后从那里执行 chmod 或 chown。只有这样,您才能启动所述脚本,并且只能从上述路径启动。

对于外部 SD,遵循相同的步骤,但使用/mnt/media_rw/sdcard1(或/mnt/media_rw/下的适当文件夹),而不是内部 SD 路径。

关于android/storage/emulated/0 和/data/media/0 权限不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33120898/

相关文章:

android - 方法 getApplicationContext() 未定义,构造函数 DatePickerDialog 未定义

Android 双向数据绑定(bind)不适用于 Fragment 中的编辑文本

android - 在 RecyclerView.ViewHolder 中显示列表的最佳实践?

linux - 从 `ls` 中删除前 3 列?

android - 新的 Parse Android SDK 附带的新 GCM(C2DM) 权限是否会禁用当前应用程序用户的自动更新?

javascript - 将权限传播到 Javascript

java - 重写自定义 ArrayAdapter 删除迭代器

linux - 用于开发和生产的不同 url

linux - 同时启动多个程序

PHP 用户以外的用户的 PHP exec() 命令函数