Linux 用户
每一个用户都有一个 userid,root 用户的 id 为 0(root 不一定是 root,0 才是 root)
一般的用户 id 在 500 以上,限制在 2 的 32 次方以下
/etc/passwd * 保存用户的信息
/etc/shadow * 保存用户的密码(加密)
/etc/group * 保存组信息
查看登录的用户
whoami
who
w
创建一个用户
useradd [yourname]
查看/etc/passwd 就可以看见新创建的用户
背后创建的步骤:
-
添加用户信息至/etc/passwd
-
设了密码的话(passwd [username])就添加密码信息至/etc/shadow
-
创建一个新的家目录到/home/下
-
复制/etc/skel 下的文件到用户家目录下
-
新建一个组,名字和用户名相同
skel 中存放的都是用户刚建立的初始文件。所以如果在这里面放自定义的文件,之后每一个新创建的用户都会有这个文件
修改及删除用户信息
usermod
-L 还可以锁定用户使其不能登录
userdel
-r 带着个参数可以连同家目录一起删除
关于组的创建和修改类似用户的操作。
权限
r, w, x 三种权限
对于目录来说,必须拥有 x 权限,否则就无法查看其内容,目录单有 r 权限没有意义。
chown 如果是文件夹,-R 参数可以递归修改文件夹以及内部的所有文件的所属,否则只修改文件夹不改文件。
chgrp 同上
chmod 改权限
关于默认权限
每一个文件或者目录创建初都会有一个默认权限,使用 umask 属性(如 022)来确定。
于是每一个目录的权限:777-umask; 每一个文件的权限:666-umask。
umask [number] 修改值
特殊权限
suid :指定文件以所属用户身份执行,而不看操作用户。
例如:在 linux 中用户的信息保存在 passwd 的文件里,而其中密码和有效期等隐秘信息都是映射到另一个 shadow 文件中,以防止信息暴露。但是这时就会存在问题,如果某一个用户需要修改自己的密码,总不能去 shadow 直接改啊,或者每次改密码都要找 root 用户,太麻烦,于是系统给了 passwd 一个 suid 权限,允许用户在使用 passwd 命令改自己的密码的时候,是以 root 的身份去改(passwd 文件属于 root 用户),从而映射到 shadow 文件内,而且同时用户是不能动其他用户的东西的。
sgid : 在目录中,创建的所有新文件的所属组均和该目录的所属组相同
sticky : 可以删除目录中自己拥有的具有写写权限的文件,而限制他删除其他用户拥有的文件
例如: 两个用户的文件保存在一个目录下,这个时候因为需要给目录写的权限,因为两个用户都要传文件,但是又不希望对方用户删除我方用户拥有的文件(毕竟目录对 other 有了写权限基本就是什么人什么都可以改)。所以使用这个特殊权限可以解决这个问题,你们还是可以在一个文件夹下面,但是别人不能删你的东西(总会有恶作剧和仇恨值...)。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于