问:

su怎么取消只读模式

答:
su命令可以用于在Linux系统中切换用户,以其他用户的身份执行命令。当以root用户执行su命令切换到其他用户时,默认会进入只读模式。这是因为root用户拥有较高的权限,为了防止误操作,su会限制切换后的用户权限。
要取消su的只读模式,可以使用以下几种方法:
1. 使用su - username:加上-参数可以登录进入用户环境,从而以完整权限身份切换用户。例如:su - testuser。
2. 使用sudo su - username:先使用sudo提高权限,然后再使用su切换用户,这样可以避开只读模式进入完整权限。
3. 退出然后重新登录:执行exit命令退出su,然后再次执行su username以避开只读模式重新登录。
4. 编辑/etc/passwd文件:可以编辑/etc/passwd文件,在要切换的用户后添加/bin/bash shell,这样该用户在登录时会进入bash交互环境而不是只读模式。
5. 编辑/etc/sudoers文件:在/etc/sudoers文件中为用户添加sudo权限,然后用户可以使用sudo su - username方式登录避开只读模式。
6. 使用su username -c 'command':如果只需要以该用户权限执行单个命令,可以使用-c参数后跟需要执行的命令。这种方式不会启动登录 shell,所以也不会进入只读模式。
7. 设置 DEFAULTS 参数:可以在/etc/sudoers文件中设置Defaults !env_reset参数为某用户去除只读模式。格式为:
username ALL=(ALL) DEFAULTS !env_reset
其中username为要设置的用户名。
总之,主要通过重新登录、编辑配置文件、使用命令行参数等方式可以取消su的只读模式,进入完整权限的用户会话。对于普通用户来说,使用sudo su - username方式是比较简单可行的。