Linux 操作系统为多用户操作系统,多个用户可以同时登录和操作系统并运行自己的任务。Linux 系统中的每一个文件都有一个所有者和所在的用户组,同时还有对应的文件访问权限,以确保系统的安全性和保护用户数据的隐私。本文将详细介绍 Linux 中的用户、用户组和权限。
在 Linux 系统中,每个用户都有一个唯一的标识,即用户 ID(uid)。系统在创建用户时,会自动分配一个 uid。同时,系统中的每个用户也都会被归属到一个或者多个用户组群里,拥有一个主用户组群(用户创建时自动创建同名的用户组),或者和一些其他用户共享其他组(额外的共享组)。
用户都存储在 /etc/passwd
文件中,我们可以通过命令 cat /etc/passwd
查看系统中的所有用户。用户组信息存储在 /etc/group
文件中,可以通过命令 cat /etc/group
查看。
用户
命令介绍 | 命令行 |
---|---|
查看所有用户 | cat /etc/passwd 或者 cat /etc/shadow |
添加账号 | useradd 比如添加 alex 账号: useradd alex |
修改密码 | passwd 比如修改 alex 账号的密码:passwd alex |
修改账号 | usermod |
删除账号 | userdel |
查询账号 | id 比如查询 alex 的账号:id alex |
切换账号 | su 比如切换到 alex 账号:su alex |
用户组
命令介绍 | 命令行 |
---|---|
查询所有用户组 | cat /etc/group 或者 cat /etc/gshadow |
添加用户组 | groupadd |
修改组信息 | groupmod |
删除用户组 | groupdel |
命令 | 含义 |
---|---|
groupadd -g 4000 adminuser | 新建 adminuser 用户组,且 id 为 4000 |
useradd -G adminuser natasha | 新建 natasha 用户,且 adminuser 作为其附属组 |
useradd -s /sbin/nologin sarah | 新建 sarah 用户,且在系统中没有任何可交互的 shell (不允许该用户登录系统) |
useradd -u 123 jay | 新建 jay 用户,且 id 为 123 |
echo redhat | passwd –stdin harry | 新建 harry 用户,且密码为 redhat |
权限
Linux 的权限系统分为两种:文件权限和进程权限。而说到文件权限,我们需要明确 Linux 中针对文件和目录有三种类型的操作权限:读(r)、写(w)、执行(x)。它们对于文件和目录的含义略有不同:
-
文件:读权限表示能查看文件内容,写权限表示能修改文件内容或删除文件,执行权限表示能执行文件(如果它是一个程序或者脚本)。 -
目录:读权限表示能查看目录内容(列出文件名),写权限表示能在目录内创建或删除文件,执行权限表示能进入目录(cd命令)。
进程权限通常为两种:普通用户权限和超级用户(root)权限。超级用户相当于 Windows 系统下的管理员,拥有所有的权限。
-
读、写、执行
数字表达形式:读(4) 写(2) 执行(1)
字母表达形式:读(r) 写(w) 执行(x)
-
修改文件权限
chmod 比如修改a文件的权限为最高权限chmod 0777 a
修改aaa文件夹下面所有的文件为最大权限chmod 0777 -R aaa (-R代表递归)
(或者使用chmod -R 777 aaa)
-
修改资源的所有者
chown
修改资源所属的用户组
chgrp
查看权限信息
ll
[root@iZuf6aig35m8ho0xq75ijnZ wwwroot]# ll
total 8
drwxr-xr-x 4 www www 4096 Jun 23 01:55 default
drwxrwxrwx 9 www www 4096 Jun 23 17:26 www.drling.xin
# 对于 default 文件夹权限的解读
# drwxr-xr-x
# d 表示 default 为文件夹,如果是文件的话前面会是 -
# rwx 第2个字母到第4个字母 代表着文件所有者的权限,也就是说 可读可写可执行
# r-x 第5个字母到第7个字母 表示着文件所在的用户组的其他用户的权限,也就是说 可读不可写可执行
# r-x 第8个字母到第10个字母 表示用户组其他的人的权限,也可以理解成陌生人的权限,也就是说 可读不可写可执行
# 4 代表连接数
# www 第一个 www 代表 default 这个文件所在的用户
# www 第二个 www 代表 default 这个文件所在的用户组
# 4096 代表档案容量
# Jun 23 01:55 代表档案最后被修改的时间
# default 文件夹对应的数字权限为 755
更改 /var/www/test
文件所属者为 harry,所属组为 alex
chown harry:alex /var/www/test
所有人都不能执行 /var/www/test
文件
chmod a-x /var/www/test
为特定用户设定特殊权限
setfacl -Rm u:natasha:rw,u:harry:- /var/www/test
# 查看特定权限
getfacl /var/www/test
su 和 sudo
我们可以使用 sudo 和 su 命令来获得更高的权限:
-
sudo:允许系统管理员允许某些或所有用户以其他用户(包括root)的身份执行一些或所有的指令。 -
su:可以用来切换当前用户身份到其它用户,当系统需要执行高级管理任务时经常需要切换到超级用户。
Linux 操作系统中明确的权限设定和多用户环境设计,有效地隔离了用户之间的影响,极大地保障了系统和数据的安全。理解并熟练使用 Linux 的用户、用户组和权限,将帮助我们更好地使用这个强大的操作系统。
切换用户并执行命令
# 切换成 www-data 用户,并执行 php artisan tinker 命令
sudo -H -u www-data sh -c 'php artisan tinker'
最后说个事
公号算法变了,为防止看不到我的更新
大家帮忙加个星标
点击上方的公众号卡片
再点右上角三个点
就能看到设为星标
算我跪下来求你们
作者简介:
95后某跨境电商企业程序猿,白天搬砖码代码,晚上自媒体写文章,持续更新编程、科技、互联网相关文章,偶尔也会无痛呻吟,感慨人生百态。自己淋过雨,所以也想为别人撑撑伞。
往期精选:
原文始发于微信公众号(浅墨觅尘往):还不太清楚Linux系统中的用户、用户组和权限?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/222095.html