服装企业网站模板,工业设计网站外网,广东万泰建设有限公司网站,2345网址导航app下载2021sudo -su user1 与 su - user1 都可以让当前用户切换到 user1 的身份执行命令或进入该用户的交互式 Shell。但它们在权限认证方式、环境变量继承和 Shell 初始化过程等方面存在一些差异。
权限认证方式 su - user1 su 是 “switch user” 的缩写#xff0c;默认情况下需要你输…sudo -su user1 与 su - user1 都可以让当前用户切换到 user1 的身份执行命令或进入该用户的交互式 Shell。但它们在权限认证方式、环境变量继承和 Shell 初始化过程等方面存在一些差异。
权限认证方式 su - user1 su 是 “switch user” 的缩写默认情况下需要你输入目标用户 (user1) 的密码如果你当前是非 root 用户。如果你是 root 用户执行 su - user1则无需输入密码。 sudo -su user1 sudo 是根据 /etc/sudoers 配置文件来判断是否有权限以 user1 的身份执行命令。当你使用 sudo -su user1 时不需要知道 user1 的密码而是需要当前用户对 sudo 的授权通常输入当前用户自己的密码或在无密码配置的 sudo 情况下无需密码。
环境和 Shell 初始化 su - user1 带 - 的 su 会启动一个仿真登录login shell类似于 login 用户过程。这意味着它会读取 user1 的登录 Shell 初始化文件例如 .bash_profile、.profile 等并清空大部分环境变量用 user1 的默认环境变量替换。换句话说是以 user1 完整登录环境启动 Shell会切换到 user1 的主目录并以 user1 的 Shell 配置为准。 sudo -su user1 这里的 sudo -su user1 实际上等价于 sudo -s -u user1-s 选项告诉 sudo 启动一个交互式 Shell但这个 Shell 不一定是一个“登录 Shell”。sudo 默认会保留调用者的一些环境变量除非你使用 sudo -i 来模拟登录。因此与 su - user1 相比sudo -su user1 启动的 Shell 环境更接近原先用户的环境而不是完全清空和重新载入 user1 的登录配置。
总结对比 认证方式 su - user1需要 user1 的密码除非当前是 root。sudo -su user1需要当前用户在 sudoers 中有权限以自身认证方式当前用户密码或无密码sudo切换无需 user1 的密码。 环境初始化 su - user1像登录 user1 一样初始化 Shell 环境清空并使用 user1 的环境变量和启动文件。sudo -su user1以 sudo 的方式切换用户但不完全模拟登录会保留一些原用户环境变量Shell 初始化不如 su - user1 的完整。
如果你的目标是完全以 user1 的身份和环境进入新 Shell包括环境变量、主目录、初始化文件等su - user1 更接近一个“干净”的登录环境。如果只是需要以 user1 的权限执行命令且无需 user1 的密码那么使用 sudo -su user1 会更加方便。