当前位置: 技术问答>linux和unix
关于写文件的权限问题
来源: 互联网 发布时间:2017-03-15
本文导语: 关于写文件的权限问题 系统目录 /data 的属性是 drwxrwx--x system system 2012-09-08 01:53 data 我自己写了个java app 在这个里面确创建不了文件,错误是 W/ImageManager( 3721): java.io.FileNotFoundException: /...
关于写文件的权限问题
系统目录 /data 的属性是
drwxrwx--x system system 2012-09-08 01:53 data
我自己写了个java app 在这个里面确创建不了文件,错误是
W/ImageManager( 3721): java.io.FileNotFoundException: /data/o.jpg (Permission denied)
这里的问题是
1)我当前的这个app的用户id是哪个 组id是哪个?
2)如果让自己的app可以在/data 里面写文件?
系统目录 /data 的属性是
drwxrwx--x system system 2012-09-08 01:53 data
我自己写了个java app 在这个里面确创建不了文件,错误是
W/ImageManager( 3721): java.io.FileNotFoundException: /data/o.jpg (Permission denied)
这里的问题是
1)我当前的这个app的用户id是哪个 组id是哪个?
2)如果让自己的app可以在/data 里面写文件?
|
首先,data目录只允许system用户和system组用户读写。
1. 通常运行app的用户和组,是当前登录的用户和对应的组
2. 用几种方法让你的app在data里面写文件
a. 让data目录也允许其他用户和组访问, chmod O+rw data
b. 把你的用户加入system组
c. 用system运行你的app
d. 将system的owner改成你的用户和组的
1. 通常运行app的用户和组,是当前登录的用户和对应的组
2. 用几种方法让你的app在data里面写文件
a. 让data目录也允许其他用户和组访问, chmod O+rw data
b. 把你的用户加入system组
c. 用system运行你的app
d. 将system的owner改成你的用户和组的
|
/data的其他用户的权限中有x权限,所以你是进入此目录读取指定文件的。android在安装应用时,好像是会在/data子目录下创建你的程序的文件和文件夹。这些文件或文件夹你是可以创建、读取、写入数据的。
|
android系统在root的情况下,参考这个http://www.open-open.com/lib/view/open1332033368218.html在/data下创建好文件,,并修改owner,,然后你就可以对此文件进行读和写了。。。要删除的话,还是按那个帖子执行获得root权限后rm xxx就行了。
app uid的话,估计不可能,,因为apk文件本来就是system:system,,是你运行的时候他降权了,切换临时用户了,可能没法通过suid方法实现。(你试试设置chmod 4755 /data/app/xxx.apk试试,,这个我也不清楚了)
app uid的话,估计不可能,,因为apk文件本来就是system:system,,是你运行的时候他降权了,切换临时用户了,可能没法通过suid方法实现。(你试试设置chmod 4755 /data/app/xxx.apk试试,,这个我也不清楚了)
|
这个是android?
你的JAVA应用要更改/data的权限是不可能的,,因为程序运行时属主肯定不是system,,
除非你的程序先获得root权限,才能更改/data的权限
你的JAVA应用要更改/data的权限是不可能的,,因为程序运行时属主肯定不是system,,
除非你的程序先获得root权限,才能更改/data的权限