用户和权限是Linux作为服务器非常重要的部分.
Linux用户不仅是用户,用户还从属于组,这样就产生了用户,用户所属的组,组外用户的三种权限.
针对每一个文件,都有上述三种情况对应的权限,如果设置不当,文件可能遭破坏或者软件运行出现问题.
用户和密码保存在/etc/passwd /etc/shadow和/etc/group中.
passwd保存了每个用户的信息,密码则保存在shadow中
用户名:密码(x表示有,空表示无):UID(用户ID,为0表示为root管理员):GroupID(组ID):用户描述信息:用户目录:是否能登陆操作系统(为bash可以登陆,nologin不允许登陆)
shadow中成对保存了用户名及密码,密码是经md5算法之后的结果
UID 500以前的都由系统占用,自己添加的账号都是从500开始的.如果将一个用户的UID改成0,则这个用户就是root用户.
用户组保存在/etc/group,其中的组id是和passwd其中一样的
这三个文件保存了所以用户以及组的基本信息.
组的密码在 /etc/gshadow, 组一般不设密码.
在新建立用户的时候,还会在/home目录下生成用户的文件夹,以及在/var/spool/mail下生成用户的邮件目录.
如果要将目录一起删除,在userdel的时候记得-r.
useradd 用户名 组名 ,如果不加组名,则通过上边的文件可以看到,会新建一个组,只包含这个用户.
用户与组的相关命令主要有:
- useradd
- usermod
- userdel
- groupadd
- groupmod
- groupel
增加用户,常用格式为 -u指定UID,-g指定群主,-d指定home目录,-c备注,-s指定用户所用的shell
修改用户账户,-G将用户添加进组,其他与useradd命令类似.-L为锁住用户,一般不用.一个用户可以属于多个组.
删除的时候一般用-r参数将用户相关的目录一起删除.
新建一个群组
修改群组,一般常用-g修改GID,-n修改名称
删除群组
在了解了用户,组的关系和操作以后,开始学习最重要的权限.
权限简单的说因为Linux一切皆文件,权限就是某一个用户对某一个文件能够进行的操作,分为,是否可读(r),是否可写(w),是否可执行(x)三个主要权限,还有其他一些配置.
先来看rwx三个权限.
用ls -l 列出详细信息的时候,详细信息按照如下的顺序排列:
权限信息x|xxx|xxx|xxx|x,没有分隔符|
硬链接数
属主:代表被哪个用户拥有
属组:属于哪一个组
大小:用字节表示的文件大小
创建时间
文件名
其中最重要的就是权限信息,属主和属组
最后的一个点.代表是在selinux开启的情况下创建的.这玩意一般都关闭,在实际生产环境中很少用到.
剩下的权限信息有10位:
第1位代表文件类型,-代表为普通的文本文件,d代表目录,l代表软链接(相当于windows的快捷方式),b代表block设备文件,p代表管道文件
虽然有权限,但root用户不受权限设置,可以对所有文件进行操作.
实际上,对于文件的拥有者来说,也是不受权限限制的.
剩下9位3位一组:
2-4位:用户权限
5-7位:用户组权限
8-10位:组外用户权限
修改权限的命令:chmod,用u代表属主,g代表属组,o代表其他(other)
使用方法:
chmod u+rx a.txt
chmod u=rwx o=- a.txt
修改属主和属组的方式
chown
运行一个文件的方式
.
./
sh
bash
除了用字母表示,也可以用一个数字代替3位权限,r=4,w=2,x=1,就可以用数字来取代chmod中权限的赋值,以后就不会看不懂chmod命令里的数字啦.