Linux学习之权限管理和用户管理
写在前面:
我的Linux的学习之路非常坎坷。第一次学习Linux是在大一下的开学没多久,结果因为不会安装VMware就无疾而终了,可以说是没开始就失败了。第二次学习Linux是在大一下快放暑假(那个时候刚刚过完考试周),我没什么事做就又重拾Linux,不服输的我选择再战Linux,这一次学习还算顺利,虽然中间有些小插曲但是不影响整体学习进度, 我看着B站上的视频一点点学习Linux,基本上把Linux的基础指令学完了。学完之后我又遇到问题了,视频基本上到这就结束了,而我却不知道下一步该学什么,于是就没怎么碰Linux,结果没过多长时间我就把学的Linux指令忘的一干二净。现在是我第三次学习Linux,我决定重新开始学Linux,同时为了让自己学习的效果更好,我选择以写blog的形式逼迫自己每天把学习到的Linux知识整理下来。这也就是我写这个系列blog的原因。
plus:欢迎大家到我GitHub上支持一下我,
star
一下,click here
Linux权限管理
说到权限,大家经常用到的命令ls -alh
显示出的信息是否看的懂?下面我来带大家分析一下。
- 第一位是表示文件类型,分别有7种。
-
,普通文件d
,目录文件c
,字符设备文件b
,块设备文件l
,软连接p
,管道文件s
,套接字- 未知文件
- 第二位到第四位是表示文件所有者的的权限
r
,表示拥有读的权限w
,表明拥有写的权限x
,表示拥有执行的权限
- 第五位到第七位是表明用户组的拥有的权限
- 第八位到第十位是表明其他用户的权限
- 第十一位是表明硬链接指数(不明白硬链接的可以先记着,我后面会讲)
- 第十二位是表明文件属主
- 第十三位是表明文件所属组
- 第十四位是表明时间的
- 第十五位是表明文件(目录)名
上面介绍的很多概念,比如读写执行权限,所属组,等等,我接下来都会一一讲解。
修改文件权限:chmod
修改文件权限有两种使用格式:字母法和数字法
字母法
先来介绍一些基础知识:
字母 | 含义 |
---|---|
u | 该文件的拥有者 |
g | 与该文件的拥有者属于同一组者,即用户组 |
o | 其他人 |
a | 所有人,即以上三者皆是 |
符号 | 含义 |
---|---|
+ | 添加权限 |
- | 撤销权限 |
= | 设定权限 |
字母 | 含义 |
---|---|
r | read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。 |
w | write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。 |
x | excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。 |
格式:chmod 具体修改操作 文件名
举例操作:chmod u=rwx g=rw o=r filename
就表明把文件的所有者的权限改为读写执行,用户组权限改为读写,其他人改为只读。
数字法
先来介绍一下各个权限用什么数字代替
字母 | 数字 |
---|---|
r | 4 |
w | 2 |
x | 1 |
格式: chmod xxx filename
, (xxx
表示三个数字,分别代表所有者的权限,用户组的权限,其他人的权限)
举例说明:chmod 764 filename
就是上面这条命令chmod u=rwx g=rw o=r filename
效果一模一样。
注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限
修改文件所有者:chown
格式: chown 新的文件所有者 要修改的文件名
举例:chown yyy test.c
,含义就是把文件test.c
的所有者改成yyy
.
注意:如果不是超级管理员的话,在执行这个命令前要加上
sudo
修改文件所属组:chgrp
格式: chgrp 新的文件所属组 要修改的文件名
举例:chown yyy test.c
,含义就是把文件test.c
的所属组改成yyy
.
注意:如果不是超级管理员的话,在执行这个命令前要加上
sudo
用户和用户组的管理
在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。
Unix/Linux系统中的root账号通常用于系统的维护和管理,它对Unix/Linux操作系统的所有部分具有不受限制的访问权限。
在Unix/Linux安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为**“标准用户”**。
在大多数版本的Unix/Linux中,都不推荐直接使用root账号登录系统。
查看当前用户:whoami
这个命令非常好记,就是who am i的中文意思。
查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。
格式: whoami
添加用户账号:useradd(adduser)
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。
命令使用格式: useradd [参数] 新建用户账号
参数 | 含义 |
---|---|
-d | 指定用户登录系统时的主目录 |
-m | 自动建立目录,未指定的话就会直接 /home/创建的用户名/ 建立主目录 |
-g | 指定组名称 |
相关说明
- Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);
- 每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录;
- 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
举例
命令 | 含义 |
---|---|
useradd -d /home/abc abc -m | 创建abc用户,如果/home/abc目录不存在,就自动创建这个目录,同时用户属于abc组 |
useradd -d /home/a a -g test -m | 创建一个用户名字叫a,主目录在/home/a,如果主目录不存在,就自动创建主目录,同时用户属于test组 |
cat /etc/passwd | 查看系统当前用户名 |
修改用户:usermod
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o
等,这些选项的意义与useradd
命令中的选项一样,可以为用户指定新的资源值 。
- 修改用户的所在组:
usermod -g 用户组 用户名
- 改用户的家目录位置:
uesrmod -d 家目录 用户名
设置用户密码:passwd
- 超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
passwd 选项 用户名
。
可选选项:-l
: 锁定口令,即禁用账号。-u
: 口令解锁。-d
: 使账号无口令。-f
: 强迫用户下次登录时修改口令。
- 普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。且普通用户只能修改自己的口令。
删除用户:userdel
命令 | 含义 |
---|---|
userdel 要删除的用户的用户名 | 删除用户,但不会自动删除用户的主目录 |
userdel -f 要删除的用户的用户名 | 删除用户,同时删除用户的主目录 |
切换用户:su
su后面可以加“-”会将当前的工作目录自动转换到切换后的用户主目录.
添加、删除组账号:groupadd、groupdel
命令格式: groupadd/groupdel 组名
写在最后
个人亲身经验:我们学习的一系列Linux命令,一定要自己亲手去敲。正可谓“键盘敲烂,月薪过万”
如果你觉得我写题解还不错的,请各位王子公主移步到我的其他题解看看
- 数据结构与算法部分(还在更新中):
- C++ STL总结 - 基于算法竞赛(强力推荐)
- 动态规划——01背包问题
- 动态规划——完全背包问题
- 动态规划——多重背包问题
- 动态规划——分组背包问题
- 动态规划——最长上升子序列(LIS)
- 二叉树的中序遍历(三种方法)
- 最短路算法——Dijkstra(C++实现)
- 最短路算法———Bellman_Ford算法(C++实现)
- 最短路算法———SPFA算法(C++实现)
- 最小生成树算法———prim算法(C++实现)
- 最小生成树算法———Kruskal算法(C++实现)
- 染色法判断二分图(C++实现)
- Linux部分(还在更新中):
?🎉总结
“种一颗树最好的是十年前,其次就是现在”
所以,
“让我们一起努力吧,去奔赴更高更远的山海”
如果有错误?,欢迎指正哟😋
🎉如果觉得收获满满,可以动动小手,点点赞👍,支持一下哟🎉
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!