用于更改用户权限的 Unix 或 Linux 命令
最近我通过电子邮件收到了一个问题 — “ …如何在 UNIX 下更改用户权限?我正在使用 Red Hat Enterprise Linux,我的背景包括 Windows 网络… ”
这是新 Linux 系统管理员会问到的一个基本问题。很多人可能已经知道,Linux 和 Windows 都是多用户的,对资源的控制访问基于用户 ID 或用户名。此外,用户被分成几组,以方便管理和确保安全。
但是,Linux(和 UNIX)以不同的格式存储和处理用户数据库。
root 用户
- root 用户是超级用户。
- root 用户可以控制整个 Linux 系统,包括文件、进程、应用程序等。root 用户对系统具有完全访问权限。
- 您不应使用 root 执行日常任务,因为 root 具有完全系统访问权限。
- 永远不要将 root 密码告诉任何人。
有关详细信息,请参阅“什么是用户帐户?”
用户数据库
- 用户数据库存储在/etc/passwd文件中
- /etc/shadow 文件中存储的用户密码和密码过期信息
群组数据库
- 用户组信息存储在/etc/group文件中
UNIX/Linux 用户权限
用户权限有两种类型(传统):
- 使用 chmod 和 chown 命令授予的文件级用户权利或权限
- 使用 sudo 授予的管理(根)级别权限。
如果你输入以下命令:
$ ls -l
您会看到类似以下内容:
-rw-r--r-- 1 vivek webusers 14814 2006-07-26 13:25 working-example.txt
查看第三、第四和最后一列。
- vivek 是用户名或文件所有者 (userid)
- webusers 是组名,因此 webusers 中的所有用户都可以访问文件 working-example.txt
- working-example.txt 是文件名。
作为 root 用户,您可以使用 chmod 和 chown 命令更改或设置用户文件相关的权利/权限。
任务:更改文件所有者和组
考虑以下例子:
$ ls -l foo.txt
输出:
-rw-r--r-- 1 vivek webgroups 8 2006-08-08 17:57 foo.txt
将文件所有权更改为 tony 用户:
# chown tony foo.txt
# ls -l foo.txt
输出:
-rw-r--r-- 1 tony webgroups 8 2006-08-08 17:57 foo.txt
将 foo.txt 组更改为 ftpusers:
# chown tony:ftpusers foo.txt
# ls -l foo.txt
输出:
-rw-r--r-- 1 tony ftpuseers 8 2006-08-08 17:57 foo.txt
您还可以使用 -R 选项递归操作文件和目录。例如,将 /var/www/html 所有权设置为用户 lighttpd,包括子目录:
# chown -R lighttpd /var/www/html
任务:更改文件访问权限/许可
您需要使用 chmod 命令。请参阅旧文章 – Linux 文件权限如何工作。
任务:向普通用户授予管理权限
您需要使用 sudo 工具。它允许被授权的用户以超级用户或其他用户的身份执行命令,如 /etc/sudoers 配置文件中指定的那样。请参阅上一篇文章了解更多信息。
Ubuntu Linux 用户须知
您可以使用 chmod 和 chown 命令来设置用户权限。确保在所有命令前加上单词(命令)sudo:
$ sudo chown tony:ftpusers foo.txt