上犹电脑信息网我们一直在努力
您的位置:上犹电脑信息网 > 电脑怎么了 > 修复 Linux 上的文件权限错误

修复 Linux 上的文件权限错误

作者:上犹日期:

返回目录:电脑怎么了

今天小编给各位分享win7局域网访问提示无权限的知识,文中也会对其通过修复 Linux 上的文件权限错误和如何恢复linux系统根分区文件权限等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!

内容导航:
  • 修复 Linux 上的文件权限错误
  • 如何恢复linux系统根分区文件权限
  • linux系统中无法修改文件权限
  • 在Linux中执行文件时候权限不够,怎么解决
  • 一、修复 Linux 上的文件权限错误

    不要让文件权限拖你后腿。以下是在 Linux 和 macOS 上管理它们的方法。

    如果你通过网络或“跑腿网络”(将文件保存到硬盘,以将其复制到一台计算机)在两个用户之间共享文件,那么在尝试读取或写入文件时可能会遇到权限错误。即使你了解它的概念,你也可能不知道该如何诊断或解决问题。我曾经将数据迁移作为一项服务执行,因此我遇到了相当多的权限错误和所有权冲突。这是我快速修复它们的方法。

    1、确定正确的用户

    在修复权限错误之前,你必须确定需要权限的人是谁。你可能认为你已经知道这一点,但你可能没有意识到用户名并不是用户身份的最确定属性。你的计算机不会将你视为一个人,而是将你视为一个数字。要了解你的号码,请查看你的用户 ID:

    $ id --user1005

    2、获取当前所有者

    接下来,确定你无法与之交互的文件的所有者。由于发生了文件权限问题,你可能需要使用 sudo命令查看有关文件的信息:

    $ sudo ls --numeric-uid-gid-rw------- 1 1000 100  23041 Aug  2 05:26 bar-rw------- 1 1000 100  54281 Aug  2 04:58 baz-rw------- 1 1000 100    822 Aug  2 08:19 foo

    在此示例中,拥有文件的用户被标识为用户 ID 1000,这就是用户 ID 1005 无法与它们交互的原因。更糟糕的是,这些文件标记为仅由拥有它们的用户可读和可写,因此即使是同一组的成员也不能与这些文件进行交互。

    3、更改权限以匹配

    你知道需要权限的用户,因此你可以更改当前所有者以匹配你当前的用户:

    $ sudo chown 1005 foo

    你还可以通过更改文件模式授予你的组成员以及系统上可能的其他用户对文件的访问权限。例如,在向组和任何其他用户授予读取权限(4)的同时保持读取和写入权限(7):

    $ sudo chmod 744 foo

    了解更多

    当你对文件权限不熟悉时,它们似乎很棘手。有关文件所有权如何工作的更多信息,请阅读 chown 简介。

    via: https://opensource.com/article/22/8/fix-file-permission-errors-linux

    作者:Seth Kenlon选题:lkxed译者:geekpi校对:wxy

    本文由 LCTT原创编译,Linux中国荣誉推出

    一、如何恢复linux系统根分区文件权限

    linux系统如果执行了chmod -R 777 / 后,系统等于瘫痪。
    因为su,mount等需要s权限(4755)的命令无法使用,ssh的key和一些ssh相关的系统文件夹不能是777权限。那么,如果使用root用户改了错误的权限后,怎么恢复呢?
    思路是这样的:通过装一个相同的新系统,把系统文件的权限导出,再导入损坏系统。
    我就碰到过一次这样的情况,系统管理员误操作,改变了大部分的系统文件权限,现在把解决过程记录如下。
    1、尝试使用getfacl导出新系统的文件权限,再setfacl导入损坏系统;结果失败。
    这样看似简单可行,但是getfacl不会导出文件的Special Permissions权限。无法正确恢复su等命令的权限。
    关于Special Permissions可以看之前的文章:linux常用+经典命令:Special Permissions设置部分
    2、写个程序导出新系统文件权限再写个shell导入损坏系统。
    以下c程序make之后可以生成.out的可执行文件,使用filename.out /bin >> pe.txt 导出/bin目录下的文件权限到pe.txt文件。
    #include
    #include
    int list(const char *name, const struct stat *status, int type)
    {
    if(type == FTW_NS)
    return 0;
    printf(“\”%s\” 0%3o\n”, name, status->st_mode & 07777);
    return 0;
    }
    int main(int argc, char *argv[])
    {
    if(argc == 1)
    ftw(“.”, list, 1);
    else
    ftw(argv[1], list, 2);
    exit(0);
    }
    将pe拷贝到损坏系统,使用如下脚本执行之:filename.sh pe.txt
    view plaincopy to clipboardprint?
    #!/bin/sh

    if [ $# != 1 ]
    then
    echo Usage : $0 \
    exit
    fi

    PERMFILE=$1

    cat $PERMFILE | while read LINE
    do
    FILE=`echo $LINE | awk '{print $1}'`
    PERM=`echo $LINE | awk '{print $2}'`
    chmod $PERM $FILE
    #echo "chmod $PERM $FILE"
    done

    echo "change perm finished! "
    自己安装的软件的权限仍然是777,可以手动改回来或者重新安装。

    ++++++++++++++++++++++++++++++++++++++++++++++++++



    操作系统 RHEL5

    如果你在linux上执行了如下操作
    chmod -R 777 / 或者 chmod -R 700 /
    那么恭喜你,你的系统即将崩溃,重启之后,你进不了图形界面,而且很多服务都起不来

    为什么呢?

    因为linux中,系统的有些文件和目录权限都是严格要求的,比如说/tmp和/root里的一些重要文件的权限都是至关重要的

    一旦文件权限受到破坏,会直接影响系统的正常启动及使用。

    那么我们碰到这种情况怎么办呢?

    1、手动的将各个文件的权限进行对照还原(假如你很有时间的话)
    2、找到一台环境相同的linux机器(最好干净一些),并进行下面操作
    1> getfacl -R / >systemP.bak 将这个系统中的 / ,以及 / 底下所有的文件及目录权限导出到一个文件中
    2> 将systemP.bak文件想办法拷贝到被破坏的机器上
    并执行setfacl --restore=systemP.bak
    3> 重启系统
    4> 将 passwd命令和 su命令的权限进行手动恢复
    chmod u+s `which passwd`
    chmod u+s `which su`
    看看是不是完活了

    注:可能不能完全还原,但起码可以进入一个较为完整的图形界面操作,其他的报错应该就可以在这个基础上进行解决了,比如有些服务。这里就不多讲了。

    二、linux系统中无法修改文件权限

    八进制数:645。文件的属性是:所有者有读写权限,组有读取权限,其他人有读取和执行权限。

    其中r:读权限,w:写权限,x:执行。属于:U:所有者,G:属群,O:其他。Rw-r-r-x 9位,分为三段,每段三位,后面是R、W、X权限,三段分别是所有者、组、其他三类权限。

    数字也可以表示权限,R用4表示,W用2表示,X用1表示,rwx用二进制表示,如果你有权限,用1代替0。具体来说,只要对应的位有权限,二进制为1,那么这三位组合起来,然后数字就可以计算出二进制到十进制的权限。





    扩展信息:

    权限规定:


    1. X(X权限的特殊形式)的功能,为目录增加X权限。

    2. 2.对于文件:没有执行的文件不会增加X权限。任何三种有执行权限的人也会增加X权限。

    3. 3.目录权限的含义:

    4. 只读:只能查看目录文件列表,不能访问文件,不能cd目录(查看,删除)。仅执行:可以通过cd访问目录中的文件,而不是ls。执行是基本权限。写权限:只有X权限才有效。新目录:777-umask值是新目录的默认权限;管理员的umask是022;普通用户的umask是002。

    5. 来源:搜狗百科-文件系统权限

    三、在Linux中执行文件时候权限不够,怎么解决

    修改权限可以解决该问题。

    可以使用chmod命令修改权限。

    语法:chmod[-cfvR][--help][--version]modefile...

    说明:Linux/Unix的档案调用权限分为三级:档案拥有者、群组、其他。利用chmod可以藉以控制档案如何被他人所调用。

    参数:

    mode:权限设定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],其中

    u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是。

    +表示增加权限、-表示取消权限、=表示唯一设定权限。

    r表示可读取,w表示可写入,x表示可执行,X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

    -c:若该档案权限确实已经更改,才显示其更改动作

    -f:若该档案权限无法被更改也不要显示错误讯息

    -v:显示权限变更的详细资料

    -R:对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

    --help:显示辅助说明

    --version:显示版本

    拓展资料:

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

    严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。

    关于win7局域网访问提示无权限的问题,通过《linux系统中无法修改文件权限》、《在Linux中执行文件时候权限不够,怎么解决》等文章的解答希望已经帮助到您了!如您想了解更多关于win7局域网访问提示无权限的相关信息,请到本站进行查找!

    相关阅读

    • 修复 Linux 上的文件权限错误

    • 上犹电脑怎么了
    • 今天小编给各位分享win7局域网访问提示无权限的知识,文中也会对其通过修复 Linux 上的文件权限错误和如何恢复linux系统根分区文件权限等多篇文章进行知识讲解,如果文章内容对您有
    • 蔡晓东牺牲前,把佩枪交给了他……

    • 上犹电脑怎么了
    • 今天小编给各位分享lol多玩盒子官方下载的知识,文中也会对其通过蔡晓东牺牲前,把佩枪交给了他……和云南38岁缉毒警察蔡晓东牺牲,他是在执行什么任务中牺牲的?等多篇文章进
    • 从市场上消失的高端桌面CPU

    • 上犹电脑怎么了
    • 今天小编给各位分享2020cpu处理器最新排名的知识,文中也会对其通过从市场上消失的高端桌面CPU和CPU系列是什么?等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站
    • Windows检测到一个硬盘解决步骤

    • 上犹电脑怎么了
    • 今天小编给各位分享取消开机自检硬盘的知识,文中也会对其通过Windows检测到一个硬盘解决步骤和Win7弹出“Windows检测到一个硬盘问题”怎么办等多篇文章进行知识讲解,如果文章内容
    关键词不能为空
    极力推荐
    • win10电脑桌面模仿MAC小组件

    • 今天小编给各位分享安卓手机仿win7桌面的知识,文中也会对其通过win10电脑桌面模仿MAC小组件和怎么把win10桌面美化为mac等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关

    电脑蓝屏_电脑怎么了_win7问题_win10问题_设置问题_文件问题_上犹电脑信息网

    关于我们