1. 前言
嗨咯,大家好我是小火柴。今天主要是想和大家分享一篇我学习Linux用户管理与权限的故事,文章难度不是很深(Linux老手或大佬求放过😄),主要是记录一下我使用Linux过程中遇到的一些问题并且总结下来,文章若有纰漏,望诸君海涵与指正。
最早开始上手Linux时,是在学习CI/CD的时候,在Linux系统中使用Docker部署Jenkins服务来实现自动化的过程(有兴趣的朋友可以看看我这篇Jenkins+Docker实现部署你的Vue应用文章哦),我经常会看到类似“permissions denied”这样的错误:
当然,网上一搜全是说要加权限,比如这样:
sudo chmod 777 -R /home/jenkins_data
又或者这样:
sudo chown -R 1000:1000 /home/jenkins_data
好用是好用了,但是我就是很好奇这个 777
是啥意思为什么不能是 888
? 为什么不能是英文 ?
此外使用ls
命令查看文件时经常看到这样的一大串:
对于一个像我这样的Linux新手来说确实特别懵逼,而且很多时候对于无法使用的命令或操作经常要借助sudo
临时借用root身份去解决问题,我觉得不是特别安全,而且也不够重视Linux的权限问题。于是我带着这样的疑问,开始寻找这些问题的答案,首先要说的就是Linux的多用户系统。以下操作都在CentOS 7
中测试,其他系统大同小异。
2. 用户/用户组的概念及管理
Linux系统是一个多用户多任务的分时操作系统(Unix),可以理解为同一时间可以有不同用户使用同一操作系统干不同的事情。这些用户可不是同一类人,有的是超级大管家(root),有的是普通小市民(test),它们虽然共同住在一起,但是有些东西并不是普通小市民可以用的,有时候要用还需要临时借用一下sudo
命令使用管家的权限。可是能力越大,责任就越大,超级大管家哪一天想不开使用了rm -rf /*
,那么恭喜直接牢底坐穿🙃。小市民虽然普通但是遵纪守法绝不会干出格的事情。而正是这样职责明确的系统才让Linux无比强大,这也是我特别喜欢Linux的原因之一啦哈哈。不扯了不扯了,我们进入主题:如何管理用户呢?
2.1 创建新用户
我们最初是有一个root
用户默认存在的,它无比强大,但是大家如果和我一样是初学者最好创建一个普通用户来学习,而且最好是在虚拟机中搞,大不了删掉重来嘛~
# 创建一个普通用户(先用root用户登录)
# 可以使用`-g`分配用户组,为了演示groupadd先不加了
useradd foo
# 修改密码