禁止根权限

本文介绍了如何在Linux系统中禁用根用户权限,包括禁用根shell、SSH登录及使用PAM进行权限管理等方法。此外,还介绍了如何通过su和sudo命令限制用户对根权限的访问。
原贴:http://blog.chinaunix.net/u/13329/showart.php?id=84758

禁止根权限
 
 
1)禁止根权限

4.4.2.1. 禁用根 Shell

要防止用户直接登录为根用户,系统管理员可以在 /etc/passwd 文件中把根帐号的 shell 设置为 /sbin/nologin。这会阻止需要 shell 的命令,如 su 和 ssh 等直接进入根帐号。



重要 不需要使用 shell 的程序,如电子邮件客户或 sudo 命令,仍旧能够进入根帐号。



4.4.2.2. 禁用根登录

要进一步限制对根帐号的使用权限,管理员可以通过编辑 /etc/securetty 文件来禁用控制台的根登录。该文件列举了所有根用户被允许登录的设备。如果该文件不存在,根用户就能通过系统上的各类通信设备,不管是控制台还是原始网络 接口,来登录。这种情况很危险,因为用户可以以根用户身份使用 Telnet 来登录,在网络中明文传送根口令。按照默认设置,红帽企业 Linux 的 /etc/securetty 文件只允许根用户在和机器物理相连的控制台上登录。要阻止根用户登录,键入以下命令来清除该文件的内容:

echo > /etc/securetty

警告 一个空白的 /etc/securetty 文件 不会防止根用户使用 OpenSSH 工具套件来远程登录,因为控制台在验证之前不会被打开。



4.4.2.3. 禁用根的 SSH 登录

要防止根用户通过 SSH 协议登录,编辑 SSH 守护进程的配置文件(/etc/ssh/sshd_config)。把以下一行:

# PermitRootLogin yes改成:

PermitRootLogin no
4.4.2.4. 使用 PAM 禁用根权限

PAM 通过 /lib/security/pam_listfile.so 模块在拒绝特定帐号方面提供了极大的灵活性。这使管理员能够在不准许登录的用户列表上应用该模块。以下的例子显示了该模块在 /etc/pam.d/vsftpd PAM 配置文件中的 vsftpd FTP 服务器上是如何被使用的(如果指令在一行内,那么就 必要使用第一行尾的 / 字符):

auth   required   /lib/security/pam_listfile.so   item=user /sense=deny file=/etc/vsftpd.ftpusers onerr=succeed这告诉 PAM 参考 /etc/vsftpd.ftpusers 文件,并拒绝其中列举的用户使用该服务。管理员可以随意改变这个文件的名称,并为每个服务保存单独的列表,或使用一个单一列表来拒绝到多个服务的使用权 限。

如果管理员想要拒绝到多个服务的使用权限,他也可以在 PAM 配置服务(如 /etc/pam.d/pop 和用于邮件服务的 /etc/pam.d/imap、或用于 SSH 客户的 /etc/pam.d/ssh)中添加相似的一行。

关于 PAM 的详情,请参阅 《红帽企业 Linux 参考指南》的“ 可插入验证模块(PAM)”这一章。


4.4.3. 限制根存取权限

与其完全否定对根帐号的使用,管理员可能只想通过 setuid 程序如 su 或 sudo 等来允许对其的使用。

4.4.3.1. su 命令

键入 su 命令后,用户会被提示输入根口令,经验证后,他就会得到一个根 shell 提示。

通过 su 命令登录后,用户 就成为根用户,并且对系统有绝对的管理权。此外,一旦用户成为根用户,他还可以使用 su 命令来变成系统上的另一个用户而不必输入口令。

因为该程序非常强大,机构内的管理员可能想限制能够使用这个命令的人员。

最简单的方法是把用户添加到一个叫做 wheel 的特殊管理组群。要这么做,以根用户身份键入以下命令:

usermod -G wheel <username>在前面的命令中,把 <username> 替换成被添加到 wheel 组群中的用户名。

下一步,在文本编辑器中打开 su(/etc/pam.d/su)的 PAM 配置文件,删除以下行的注释符号 [#]:

auth  required /lib/security/pam_wheel.so use_uid这么做会只允许管理性组群 wheel 使用该程序。



注记 根用户是默认的 wheel 组群成员。



4.4.3.2. sudo 命令

sudo 命令提供了另一种授予用户管理权限的方法。当可信任的用户在管理命令前加一个 sudo 命令,这个用户就会被提示输入 他自己的口令。验证后,假定这个命令被准许执行,它就会以根用户身份执行。

sudo 命令的基本格式如下:

sudo <command>在上面的例子中, <command> 应该被替换为通常保留给根用户使用的命令,如 mount。



重要 sudo 命令的用户应该在离开他们的机器前特别留意一下自己是否已经退出,因为这些用户可以在五分钟之内再次使用这个命令而不必输入口令。该设置可以通过修改配置文件 /etc/sudoers 来改变。


sudo 命令提供了高度的灵活性。例如,只有列举在 /etc/sudoers 配置文件中的用户被允许使用 sudo 命令,并且命令是在 用户的而不是根的 shell 中被执行。这意味着根 shell 可以被完全禁用,如 第 4.4.2.1 节所示。

sudo 命令还提供了完整的审核渠道。每次成功的验证都被记录在 /var/log/messages 文件中,所使用的命令以及使用者的用户名被记录在/var/log/secure 文件中。

sudo 命令的另一个优越性是,管理员可以根据需要给不同的用户以不同的命令使用权限。

想编辑 sudo 配置文件 /etc/sudoers 的管理员应该使用 visudo 命令。

要给某人以完全的管理权限,键入 visudo,然后在用户特权规定部分添加和以下相似的一行:

juan ALL=(ALL) ALL这个例子表明,用户 juan 可以在任何主机上使用 sudo 来执行任何命令。

以下的例子显示了 sudo 配置方面的可伸缩性:

%users  localhost=/sbin/shutdown -h now这个例子表明,只要是从控制台使用,任何用户都可以使用 /sbin/shutdown -h now 命令。

sudoers 的说明书页中有一个该文件选项的详细列表。
创建于: 2006-03-13 20:08:18,修改于: 2006-03-13 20:08:18,已浏览107次,有评论0条
 
### 在Linux中获取目录权限的方法 在Linux系统中,目录(`/`)的访问和控制通常需要管理员权限(即root权限)。以下是实现这一目标的具体方法: #### 1. 使用`sudo`命令 如果用户具有`sudo`权限,则可以通过`sudo`命令以超级用户身份执行特定操作。例如,要编辑目录下的文件,可以运行以下命令: ```bash sudo nano /example_file ``` 此命令将允许用户以root权限编辑指定文件[^1]。 #### 2. 切换到root用户 在某些Linux发行版中,可以直接切换到root用户。使用以下命令: ```bash su - ``` 输入root用户的密码后,即可获得完整的root权限。需要注意的是,直接以root用户登录可能带来安全风险,因此建议仅在必要时使用此方法[^4]。 #### 3. 配置`sudoers`文件 如果没有`sudo`权限,但有权限修改`/etc/sudoers`文件,可以通过添加当前用户到`sudoers`列表来授予自己root权限。使用`visudo`命令编辑该文件: ```bash visudo ``` 在文件中添加如下行: ```plaintext username ALL=(ALL:ALL) ALL ``` 保存并退出后,用户即可使用`sudo`命令获取root权限[^1]。 #### 4. 修改文件权限 如果只需要对目录下的某个文件或目录进行访问,可以临时更改其权限。例如: ```bash sudo chmod 755 /path/to/file ``` 这将赋予其他用户读取和执行权限。完成后,记得恢复原始权限以确保系统安全性[^3]。 #### 5. 使用SFTP锁定目录 对于远程管理场景,可以通过配置SFTP服务限制用户只能访问特定目录,并且禁止通过SSH登录服务器。具体步骤包括设置chroot环境以及禁用shell访问。例如,在`/etc/ssh/sshd_config`中添加以下内容: ```plaintext Match User sftpuser ChrootDirectory /sftp/home ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no ``` 重启SSH服务后,用户`sftpuser`将被限制在其主目录内[^4]。 ### 注意事项 - 获取root权限应谨慎操作,避免因误操作导致系统不稳定或数据丢失。 - 对于生产环境中的服务器,推荐使用最小权限原则,尽量减少不必要的root权限分配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值