精华内容
下载资源
问答
  • 修改文件访问权限
    千次阅读
    2020-07-11 16:36:33

    做系统开发,有时候需要读取某些原生文件内容,当权限不足时,一般做法是:

    1. 使用 chmod 命令修改文件权限;
    2. 修改目标文件的默认权限

    1.使用 chmod 命令修改文件权限

    使用代码执行 chmod 命令,

    private void chmodFile(File destFile) {
    		try {
    			String command = "chmod 666 " + destFile.getAbsolutePath();
    			Runtime runtime = Runtime.getRuntime();
    			Process proc = runtime.exec(command);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    

    如果是 app 自己创建的的文件,一般没问题;
    如果目标文件是编译后产生的文件,可能需要系统权限才能操作;
    如果目标文件是以只读方式挂载的,则此方法会失效;

    2.修改目标文件的默认权限

    2.1 修改 system/core/libcutils/fs_config.c 文件,如将 vendor/build.prop 文件权限由 600 改为 644 ,使其可读可写,

    static const struct fs_path_config android_files[] = {
    	//省略部分代码
    -   { 00600, AID_ROOT,      AID_ROOT,      0, "vendor/build.prop" },
    +	{ 00644, AID_ROOT,      AID_ROOT,      0, "vendor/build.prop" },
    	//省略部分代码
    }
    

    2.2 修改 device/xxx/xxx/init.m7221.rc 文件,如 chown 修改权限组, chmod 修改权限值,

    on boot
    +    chown system system /test/test.txt
    +    chmod 0777 /test/test.txt
    

    在如下文件中也可以添加类似修改

    device/xxx/xxx/init.rc
    system/core/rootdir/init.rc

    更多相关内容
  • 在Python中更改文件权限

    千次阅读 2021-01-12 03:04:49
    在Python中更改文件权限我正在尝试更改文件访问权限:os.chmod(path, mode)我想将其设为只读:os.chmod(path, 0444)还有其他方法可以将文件设为只读吗?6个解决方案64 votesos.chmod(path, stat.S_IRUSR | stat.S_...

    在Python中更改文件权限

    我正在尝试更改文件访问权限:

    os.chmod(path, mode)

    我想将其设为只读:

    os.chmod(path, 0444)

    还有其他方法可以将文件设为只读吗?

    6个解决方案

    64 votes

    os.chmod(path, stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH)

    统计

    以下标志也可以在以下参数的mode参数中使用:   os.chmod():

    stat.S_IEXEC设置UID位

    stat.S_IEXEC设置组ID位。 该位有几种特殊用途。 对于   它指示将使用BSD语义的目录   目录:在此创建的文件会从   目录,而不是创建过程的有效组ID中的目录,   并且在那里创建的目录也将设置S_ISGID位。 为一个   没有设置组执行位(S_IXGRP)的文件,   set-group-ID位指示强制性文件/记录锁定(另请参见   S_ENFMT)。

    stat.S_IEXEC粘性位。 在目录上设置此位时表示   该目录中的文件只能由   文件的所有者,目录的所有者或特权用户   处理。

    stat.S_IEXEC文件所有者权限的掩码。

    stat.S_IEXEC所有者具有阅读权限。

    stat.S_IEXEC所有者具有写权限。

    stat.S_IEXEC所有者具有执行权限。

    stat.S_IEXEC组权限的掩码。

    stat.S_IEXEC组具有读取权限。

    stat.S_IEXEC组具有写权限。

    stat.S_IEXEC组具有执行权限。

    stat.S_IEXEC他人(不在组中)权限的掩码。

    stat.S_IEXEC其他人拥有阅读权限。

    stat.S_IEXEC其他人具有写许可。

    stat.S_IEXEC其他人具有执行权限。

    stat.S_IEXEC系统V文件锁定实施。 该标志是共享的   带有S_ISGID的文件/记录锁定在没有   设置组执行位(S_IXGRP)。

    stat.S_IEXEC S_IRUSR的Unix V7同义词。

    stat.S_IEXEC S_IWUSR的Unix V7同义词。

    stat.S_IEXEC S_IXUSR的Unix V7同义词。

    John La Rooy answered 2020-01-26T07:58:55Z

    30 votes

    subprocess是用于在Python 2.x中更改文件权限的Python命令。 对于Python 2和Python 3的组合解决方案,请将0444更改为0o444。

    您总是可以使用Python使用subprocess来调用chmod命令。不过我认为这仅适用于Linux。

    import subprocess

    subprocess.call(['chmod', '0444', 'path'])

    Inbar Rose answered 2020-01-26T07:59:20Z

    16 votes

    只需在八进制中包含权限整数(适用于python 2和python3):

    os.chmod(path, 0o444)

    Gitanoqevaporelmundoentero answered 2020-01-26T07:59:41Z

    15 votes

    当前所有答案都破坏了非写权限:它们使文件对所有人可读,但不可执行。 当然,这是因为最初的问题要求&权限-但我们可以做得更好!

    这是一个解决方案,使所有单独的“读取”和“执行”位保持不变。 我编写了冗长的代码以使其易于理解。 如果愿意,可以使其更简洁。

    import os

    import stat

    def remove_write_permissions(path):

    """Remove write permissions from this path, while keeping all other permissions intact.

    Params:

    path: The path whose permissions to alter.

    """

    NO_USER_WRITING = ~stat.S_IWUSR

    NO_GROUP_WRITING = ~stat.S_IWGRP

    NO_OTHER_WRITING = ~stat.S_IWOTH

    NO_WRITING = NO_USER_WRITING & NO_GROUP_WRITING & NO_OTHER_WRITING

    current_permissions = stat.S_IMODE(os.lstat(path).st_mode)

    os.chmod(path, current_permissions & NO_WRITING)

    为什么这样做?

    正如John La Rooy指出的那样,&基本上是指“用户写许可权的位掩码”。 我们希望将相应的权限位设置为0。为此,我们需要完全相反的位掩码(即,该位置的位掩码为0,其他位置为1)。 NO_WRITING运算符将所有位翻转,从而为我们提供了确切的信息。 如果我们通过“按位与”运算符(&)将其应用于任何变量,则它将相应位清零。

    我们还需要使用“组”和“其他”权限位重复此逻辑。 在这里,我们只需&将它们全部组合在一起(形成NO_WRITING位常量)就可以节省一些时间。

    最后一步是获取当前文件的权限,并实际执行按位与操作。

    Chip Hogg answered 2020-01-26T08:00:25Z

    0 votes

    无需记住标志。 请记住,您可以随时执行以下操作:

    man chmod

    不可移植,但易于编写和记住:

    u-用户

    g-组

    o-其他

    一个-全部

    +或-(添加或删除权限)

    r-读取

    w-写

    x-执行

    有关其他选项和更详细的说明,请参考man chmod。

    solgar answered 2020-01-26T08:01:33Z

    0 votes

    仅供参考,此处的功能是将9个字符的权限字符串(例如'rwsr-x-wt')转换为可以与ST结合使用的掩码。

    def perm2mask(p):

    assert len(p) == 9, 'Bad permission length'

    assert all(p[k] in 'rw-' for k in [0,1,3,4,6,7]), 'Bad permission format (read-write)'

    assert all(p[k] in 'xs-' for k in [2,5]), 'Bad permission format (execute)'

    assert p[8] in 'xt', 'Bad permission format (execute other)'

    m = 0

    if p[0] == 'r': m |= stat.S_IRUSR

    if p[1] == 'w': m |= stat.S_IWUSR

    if p[2] == 'x': m |= stat.S_IXUSR

    if p[2] == 's': m |= stat.S_IXUSR | stat.S_ISUID

    if p[3] == 'r': m |= stat.S_IRGRP

    if p[4] == 'w': m |= stat.S_IWGRP

    if p[5] == 'x': m |= stat.S_IXGRP

    if p[5] == 's': m |= stat.S_IXGRP | stat.S_ISGID

    if p[6] == 'r': m |= stat.S_IROTH

    if p[7] == 'w': m |= stat.S_IWOTH

    if p[8] == 'x': m |= stat.S_IXOTH

    if p[8] == 't': m |= stat.S_IXOTH | stat.S_ISVTX

    return m

    请注意,设置SUID / SGID / SVTX位将自动设置相应的执行位。 如果没有此权限,则产生的许可将无效(ST个字符)。

    Sheljohn answered 2020-01-26T08:01:58Z

    展开全文
  • Android修改系统文件访问权限

    热门讨论 2012-03-24 14:37:45
    Android修改系统文件访问权限,在init.rc里配置service,通过启动service去执行脚本,在脚本里做修改文件访问权限操作。应用通过jni启动service。
  • 文件访问权限

    千次阅读 2019-05-29 10:50:44
    Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、...

    文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。

    Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。

    在 Unix/Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

    通过设定权限可以从以下三种访问方式限制访问权限:

    1. 只允许用户(即文件的所有者)自己访问,用户可以允许所在的用户组能访问用户的文件。
    2. 允许一个预先指定的用户组中的用户访问,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。
    3. 允许系统中的任何用户访问,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是 other 用户类

    用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:

    • 读权限(r) 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
    • 写权限(w) 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
    • 可执行权限(x) 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

    注意:通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。

    第1个字母代表文件的类型:“d” 代表文件夹、“-” 代表普通文件、“c” 代表硬件字符设备、“b” 代表硬件块设备、“s”表示管道文件、“l” 代表软链接文件。

    后 9 个字母分别代表三组权限:文件所有者、用户者、其他用户拥有的权限。

    每一个用户都有它自身的读、写和执行权限。

    • 第一组权限控制访问自己的文件权限,即所有者权限。
    • 第二组权限控制用户组访问其中一个用户的文件的权限。
    • 第三组权限控制其他所有用户访问一个用户的文件的权限。

    这三组权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限就构成了一个有9种类型的权限组。

    展开全文
  • Linux 修改文件权限

    千次阅读 2021-07-11 23:59:34
    在Linux中,如果要对文件权限进行修改,那么可在终端中使用 chmod 命令对其文件权限进行修改,但是 chmod 命令修改文件权限有两种方式:1、字母法,2、数字法 2、权限说明 ​ (1)只读:表示只允许读取内容,...

    1、介绍:

    ​ Linux系统中,每个文件或目录都有访问许可权限,用它来确定以何种方式对文件或目录进行访问和操作。在Linux中,如果要对文件的权限进行修改,那么可在终端中使用 chmod 命令对其文件的权限进行修改,但是 chmod 命令修改文件权限有两种方式:1、字母法,2、数字法

    2、权限说明

    ​ (1)只读:表示只允许读取内容,而禁止其对该文件做其他任何操作

    ​ 字母法:‘r’

    ​ 数字法:权限值 4

    ​ (2)只写:表示只允许对该文件进行编辑,而禁止对其进行其他任何操作

    ​ 字母法:‘w’

    ​ 数字法:权限值 2

    ​ (3)可执行:允许将该文件作为一个可执行程序

    ​ 字母法: x

    ​ 数字法 :权限值 1

    ​ (4)无任何权限

    ​ 字母法: -

    ​ 数字法:权限值 0

    3、用户

    ​ (1)u : user ,表示该文件的所有者,所有者一般值文件的创建者,所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户

    ​ (2)g :group ,表示用户组,或者同组用户,所谓用户组就是具有相同特征的用户的集合体,比如有一个时间表,而编写时间表的人具有对该文件的读写权限,而我们想让一些用户知道这个时间表的内容,但是不想让其进行修改,那么就将这写用户划分到一个组中,然后对该时间表进行权限修改,这样该用户组下面的每一个用户都是可读的了。

    ​ (3)o :other ,表示其他用户

    ​ (4)a :all ,表示所有用户

    4、权限设置

    ​ (1)+ :增加权限

    ​ (2)- :撤销权限

    ​ (3)= :修改权限

    5、权限设置格式:

    chmod 用户=权限 文件名称
    

    (1)增加权限:

    chmod 用户=+权限 文件名称
    # 例如:
    	chmod g=+w double.txt
    

    (2)撤销权限

    chmod 用户=-权限 文件名称
    # 例如:
    	chmod g=-x double.txt
    

    (3)无任何权限

    chmod 用户=+权限 文件名称
    # 例如:
    	chmod u=- double.txt
    
    展开全文
  • 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户组中的用户...
  • 文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件...
  • 强制将当前目录下的所有文件及文件夹、子文件夹下的所有者更改为管理员组(administrators)命令: takeown /f * /a /r /d y 赋给Everyone对D:\1234目录下所有文件的读写操作权限 Icacls D:\1234 /grant Everyone...
  • 本文介绍如何使用chmod命令更改文件和目录的访问权限。Linux文件权限说明在进一步说明之前,让我们解释一下基本的Linux权限模型。在Linux中,每个文件都与一个所有者和一个组相关联,并为三个不同类别的用户分配了...
  • 在一些只读文件在打包部署时忘记修改权限的话,在部署项目时会...2、chown:更改文件属主,也可以同时更改文件属组 3、chmod:更改文件9个属性 符号类型改变文件权限 修改文件权限前先了解一下文件的基本属性,...
  • 如何修改文件权限

    千次阅读 2021-08-23 14:23:07
    改变文件权限的两种方法: 第一种: 符号 sudo chmod 文件身份+操作符+权限符号 文件档案或目录 文件的四种身份: u: user文件所有者 g: group 文件所属群组 o: other 其他拥有者 ...更改权限相关的三个命
  • 文件权限修改工具,可对文件及文件夹访问权限进行限制,防止防止其他用户直接访问。解压后有两个文件,一个为执行文件(主程序),另一个为记录文件(可用记事本打开)
  • linux 更改文件权限命令 chmod

    千次阅读 2021-05-12 00:40:22
    chmod -change file mode bits :更改文件权限chmod是用来改变文件或者目录权限的命令,但只有文件的属主和超级用户(root)才有这种权限更改文件权限的2种方式:一、权限字母+操作符表达式二、数字方法(常用)hmod...
  • linux修改文件权限

    千次阅读 2021-05-17 17:25:02
    类别:CentOS / 日期:2019-10-10 / 浏览:97 / 评论:0查看权限Linux文件访问权限分为可读,可写和可执行三种。可用ls -l命令查看,例:ls -l显示-rwxr-xr-x 1 root root 6444 09-22 15:33 shmwrite-rw-r--r-- 1 ...
  • linux修改文件权限和用户组管理小结

    千次阅读 2021-05-10 20:56:13
    如何在linux下修改权限chmod g+r path/file 加读权限 当前目录chmod -R g+r path/file 加读权限 当前目录以及子目录g-r 减读权限g+w 加写权限g-wg+x 加执行权限g-x经常会用到的命令,记一下。1.chgrp修改文件所属...
  • 为了保护服务器共享文件的安全,...方法一、通过操作系统设置共享文件访问权限的方法第1步,在开始菜单中依次单击“管理工具”→“文件服务器管理”菜单项,打开“文件服务器管理”窗口。在右窗格中选中需要设置访问...
  • linux修改文件夹-文件目录权限

    万次阅读 2021-05-11 05:31:27
    Linux、Fedora、Ubuntu修改文件、文件夹权限的方法差不多。很多人开始接触Linux时都很头痛Linux的文件权限问题。这里告诉大家如何修改Linux文件-文件夹权限。以主文件夹下的一个名为“cc”的文件夹为例。下面一步...
  • 但是因为要访问的文件夹要放在c盘的文件夹里面“C:inetpubwwwroot” ,所以在操作这个文件夹里面的内容时,会经常提示权限的问题,使用某些软件编辑这些文件时,还可能会因为权限的原因,不能修改或保存这些文件,很...
  • <1> 简单介绍: <2>文件的详细信息 <...在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录,即权限决定了用户对该文件的操作方...
  • ftp服务器修改访问目录权限设置

    千次阅读 2021-08-11 01:26:08
    ftp服务器修改访问目录权限设置 内容精选换一换打开FTP服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹。浏览器设置了FTP防火墙。以设置IE浏览器为例。打开IE浏览器菜单"工具 > Internet 选项"。选择...
  • Windows Server 2008 下文件权限修改在安装PostgreSQL时遇到对cmd.exe的启动对象换成新建的普通用户postgres,但是该用户没有权限对cmd.exe操作。所以一直报错请求被拒绝。上网查了很多,针对文件权限修改总结如下...
  • 修改文件或者目录读写权限时,提示“拒绝访问”。在 windows 2008下,当你使用这个方法的时候碰到困难了,因为我们没有权限去配置安全,比如我们以inetpub下的ASP Compiled Templates目录的安全配置作为例子,当我们...
  • linux修改访问权限命令

    千次阅读 2020-05-21 13:58:16
    访问权限: 三种权限:读(read)、写(write)、执行(execute) 涉及到的主体:文件所有者(user)、文件所属组(group)、其他人(other) 二修改权限 chmod命令:chmod是Linux/Unix中修改文件或者目录权限的...
  • 在本文中,我们将说明如何使用chmod、find命令以递归方式更改文件和目录的权限。如果您使用Linux作为主要操作系统或管理Linux服务器,则在尝试创建或编辑文件并收到“Permission deny”错误时会遇到这种情况,通常,...
  • Android 修改系统文件 访问权限

    千次阅读 2014-04-25 13:31:49
    我这里编译都是在Android源码包下,文章...修改权限的大致思路就,1、用c语言编写编译出一个脚本,我们运行该脚本来修改文件访问权限。2、在init.rc里需要配置一个service,并为service指定要执行的脚本。这样我们就可
  • Ubuntu下如何修改文件或者文件夹的权限------chmod的亲身测试 具体原理如下: 一、 介绍: 可以使用命令chmod来为文件或目录赋予权限。Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod ...
  • chmod 更改文件权限

    千次阅读 2021-05-21 19:56:43
    chmod命令用于更改文件权限,其语法格式如下: chmod [选项] mode 文件 常用参数: 没有啥参数,直接说模式吧; file的属主属组其他人,可读可写可执行,rwx 421,字母mode和数字mode; 演示示例: chmod u+x,g+w,o...
  • linux下修改文件权限命令

    万次阅读 2021-12-05 14:53:42
    修改文件权限 修改方法1:(参数) 命令:chomod 语法:chomod [参数][augo][+-=][rwx]文件名 例子: 1.将文件file1.txt增加可读权限 chmod ugo+r file1.txt 2.将文件file1.txt设为所有人(all)可读 chmod...
  • 1、当前用户权限是否正确2、当前分区是否可读写3、是否设置权限遮罩4、是不是RP有问题,那需要看你修改文件在什么位置,是怎么mount上来的如果是cdrom一类的路径的话,那肯定就是只读的还有就是mount的时候是不是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 739,136
精华内容 295,654
关键字:

修改文件访问权限