Linux系统下, root账户权限无法修改pam.d/system-auth文件

Linux系统下, root账户权限无法修改pam.d/system-auth文件

img

img

img

已使用sudo, chmod无效

应该是文件有保护,被设置为不可修改(immutable)了,这个属性区别于chmod可修改的权限。如果确定要修改,使用 chattr 命令修改属性:
-i 移除不可修改属性
+i 设置为不可修改

在Linux系统中,/etc/pam.d/system-auth文件是用于控制系统身份验证的配置文件,只有root账户或具有sudo权限的用户才能修改它。如果root账户无法修改该文件,可能是以下几个原因:

  1. 文件权限不正确:使用ls -l /etc/pam.d/system-auth命令查看该文件的权限,确保它的权限为-rw-r--r--,即owner有读写权限,其他用户只有读权限。如果该文件的权限不正确,可以使用chmod命令修改权限,例如:

    sudo chmod 644 /etc/pam.d/system-auth
    
  2. 文件被锁定:如果该文件已被锁定,可能需要使用chattr命令解除锁定。例如,使用以下命令解除文件锁定:

    sudo chattr -i /etc/pam.d/system-auth
    
  3. 文件系统被挂载为只读:如果文件系统被挂载为只读,可能需要重新挂载文件系统为可读写模式。例如,使用以下命令重新挂载文件系统:

    sudo mount -o remount,rw /
    

如果上述方法都无法解决问题,可能是文件系统或硬盘出现了故障或损坏,需要进行相应的维护和修复。

试一试看对你有帮助没有,如果还没有解决,你帮提示的错误发我私信,我帮你解决

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    不能解决该问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

可能是因为该文件系统已被挂载为只读文件系统。

可以通过执行以下命令来检查文件系统是否已经被挂载为只读文件系统:

mount | grep "^/dev"

如果你看到了像下面这样的输出,则表示文件系统已挂载为只读:

/dev/sda1 on / type ext4 (ro,relatime)

在这种情况下,你可以尝试重新将文件系统挂载为可读写文件系统,然后再次尝试更改文件权限。

例如,如果文件系统是/dev/sda1,你可以使用以下命令将其重新挂载为可读写文件系统:

sudo mount -o remount,rw /dev/sda1

然后,你可以再次尝试更改文件权限。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
有可能是pam.d/system-auth文件所在的文件系统被挂载成只读模式了,您可以尝试使用如下命令查看:

mount | grep ' / '

如果返回结果中包含了"ro"(read only)则表示文件系统是只读的。要修改文件,您需要挂载文件系统为读写模式,可以使用如下命令挂载:

mount -o remount,rw /

然后您就可以尝试使用sudo或chmod或其他命令修改文件了。修改完成后,为了保证文件系统的安全性,您需要将其重新挂载成只读模式,可以使用如下命令:

mount -o remount,ro /

请注意在使用以上命令时,需要注意确保您有足够的权限进行修改和重新挂载文件系统。
如果我的回答解决了您的问题,请采纳!

引用new bing部分回答作答:
如果您使用了 sudo 和 chmod 命令,但仍然无法修改 pam.d/system-auth 文件,那么可能是因为该文件的权限已被保护。修改文件所有者和组。您可以使用以下命令将文件所有者和组更改为当前用户:

sudo chown $USER:$USER /etc/pam.d/system-auth

然后,您可以使用 chmod 命令修改文件权限。

如果您是root用户并且仍然无法修改 pam.d/system-auth 文件,可能是由于SELinux或AppArmor等安全性功能禁止了您对该文件的修改。

您可以通过以下命令来检查SELinux和AppArmor是否启用:

sestatus
apparmor_status

如果任何一个命令返回输出,则相应的安全功能已经启用。您可以通过编辑相应的配置文件来禁用它们,例如:

对于SELinux,在 /etc/selinux/config 文件中设置 SELINUX=disabled 并重启系统。
对于AppArmor,在 /etc/apparmor.d/disable/ 目录中创建一个文件,并在文件中指定您要禁用的应用程序的名称,例如:/sbin/dhclient。然后执行 sudo systemctl reload apparmor 重新加载配置。
如果禁用这些安全功能不起作用,您可以尝试在单用户模式下修改文件。单用户模式允许您以root用户的身份在没有其他用户登录的情况下启动系统,并在没有其他进程干扰的情况下进行维护和修复操作。以下是在单用户模式下修改文件的步骤:

1 重启您的系统并在GRUB菜单中选择第二个选项,即 "Advanced options for Ubuntu"。
2 选择 "Recovery mode" 选项并按照屏幕上的提示进行操作,最后选择 "Drop to root shell prompt"。
3 现在您已以root身份登录到单用户模式,您可以使用以下命令修改文件权限:

mount -o remount,rw /
chmod <权限> /etc/pam.d/system-auth

4 新启动系统,您应该能够访问修改后的文件。
希望这可以帮助您解决问题。