1、/etc/passwd,用户属性 ---->cat /etc/passwd or getent passwd,查看/etc/passwd文件 ---->getent passwd 用户名 1.1 /etc/passwd文件中每行的7个字段,意义如下: login name:登录用名(wang) passwd:密码 (x) UID:用户身份编号 (1000) GID:登录默认所在组编号 (1000) GECOS:用户全名或注释 home directory:用户主目录 (/home/wang) shell:用户默认使用shell (/bin/bash) ---->pwunconv,将x转换成哈希(sha512)加密后的密码 ---->pwconv,哈希(sha512)后的密码转换成x 2、/etc/shadow,用户密码属性 ---->cat /etc/shadow or getent shadow,查看/etc/shadoww文件 ---->getent shadow 用户名,查看此用户这行密码属性 2.1 /etc/shadow文件中9个字段,意义如下: 登录用名 用户密码:一般用sha512加密 从1970年1月1日起到密码最近一次被更改的时间 密码再过几天可以被变更(0表示随时可被变更) 密码再过几天必须被变更(99999表示永不过期) 密码过期前几天系统提醒用户(默认为一周) 密码过期几天后帐号会被锁定 从1970年1月1日算起,多少天后帐号失效 2.2第二个字段哈希密码第一个$与第二个$之间表示意义: $6:sha512加密算法;$1:md5算法 2.3 第二个字段哈希密码第二个$与第三个$之间表示意义: salt:哈希加密算法加密之前,添加随机字段,单向加密目前不可逆(MD5除外),雪崩效应,为加强密码安全性 2.4 更改/etc/shadow文件中加密算法 ---->authconfig --passalgo=sha256 --update,原理是改变/etc/login.def文件中ENCRYPT METHOD SHA512 3、/etc/group,用户组属性 ---->cat /etc/group or getent group 其包含4个字段,意义: 群组名称:就是群组名称 群组密码:通常不需要设定,密码是被记录在 /etc/gshadow GID:就是群组的ID 以当前组为附加组的用户列表(分隔符为逗号) 4、/etc/gshadow,用户组密码及管理属性 ---->cat /etc/gshadow or getent gpasswd,查看此文件 其包含4个字段,意义: 群组名称:就是群组名称 群组密码: 组管理员列表:组管理员的列表,更改组密码和成员 以当前组为附加组的用户列表:(分隔符为逗号) 5、vipw , vigr 打开/etc/passwd,/etc/group,相当于vim -o /etc/passwd /etc/group 6、pwck , grpck 检查/etc/passwd,/etc/group文件中语法 7、useradd 7.1 useradd [options] LOGIN -u UID -o 配合-u 选项,不检查UID的唯一性 -g GID:指明用户所属基本组,可为组名,也可以GID -c "COMMENT":用户的注释信息 -d HOME_DIR: 以指定的路径(不存在)为家目录 -s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中 -G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在 -N 不创建私用组做主组,使用users组做主组 -r: 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000 -m 创建家目录,如果主目录不存在则自动创建 -M 不创建家目录,用于非系统用户 ---->groupadd -g 1080 parrot ---->useradd -u 1080 -c "Centos is king" -s /bash/shell -m -d /data/parrot parrot ---->useradd -o -u 1080 parrot_1,不检查id唯一性 ---->useradd -N gentoo,不创建私有组作为主组,而是users作为主组 7.2 useradd 添加用户时默认配置文件/etc/default/useradd ---->cat /etc/default/useradd or useradd -D 显示或更改默认设置 useradd –D -s SHELL useradd –D –b BASE_DIR useradd –D –g GROUP ---->useradd -D -b /data,修改添加用户时默认家目录 7.3 /etc/skel,创建用户家目录时,其家目录下环境变量等隐藏文件是以此目录为模板复制 8、newusers 文件:后面跟文件是以passwd格式文件,批量创建用户 ---->newusers 1.new,以1.new文件添加用户 注:此方法创建用户家目录下无/etc/skel/环境变量配置文件 chpasswd 文件:文件格式为user:passwd,批量修改用户口令 cat 1.new.passwd |chpasswd,批量设置用户密码 9、 usermod usermod [OPTION] login -u UID: 新UID -g GID: 新主组 -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项 -s SHELL:新的默认SHELL -c 'COMMENT':新的注释信息 -d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项 -l login_name: 新的名字; -L: lock指定用户,在/etc/shadow 密码栏的增加 ! -U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉 -e YYYY-MM-DD: 指明用户账号过期日期 -f INACTIVE: 设定非活动期限 ---->usermod -u 2018 -g 2019 -aG mysql -s /sbin/nologin test ---->usermod -f 5 test,修改用户INACTIVE period ,默认为空 10、userdel userdel [OPTION]... login -r: 删除用户家目 ---->userdel -r 用户 ,删除用户时同时删除其家目录,默认不删除 注:/etc/login.defs下如果CREATE_HOME项不存在,或设置为no,则创建用户时不会创建家目录,-m选项则会自动创建 ---->ueradd test1 && useradd -m test1 11、id id [OPTION]... [USER] -u: 显示UID -g: 显示GID -G: 显示用户所属的组的ID -n: 显示名称,需配合ugG使用 ---->id -u yyc;id -ng 1001 12、su,切换用户 su [options...] [-] [user [args...]] 12.1切换用户的方式: su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变 12.2当前工作目录 su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换 12.3root su至其他用户无须密码;非root用户切换时需要密码 12.4换个身份执行命令: su [-] UserName -c 'COMMAND' 13、passwd 修改/设置用户密码 passwd [OPTIONS] UserName: 修改指定用户的密码 常用选项: -d:删除指定用户密码 -l:锁定指定用户 -u:解锁指定用户 -e:强制用户下次登录修改密码 -f: 强制操作 -n mindays: 指定最短使用期限 -x maxdays:最大使用期限 -w warndays:提前多少天开始警告 -i inactivedays:非活动期限 --stdin:从标准输入接收用户密码 echo "PASSWORD" | passwd --stdin USERNAME ---->passwd -d 用户,删除用户密码 ---->passwd -l 用户名,锁定用户 ---->passwd -u 用户名,解锁用户 其原理/etc/shadow文件中第二个字段前加! ---->passwd -e 用户,强制下次登录修改密码 原理是将上一次修改密码时间设置为0,下一次登录则必须修改密码 ---->passwd -n 1 -x 20 -w 3 -i 3 test2 14、chage,修改用户密码策略 chage [OPTION]... LOGIN -d LAST_DAY -E --expiredate EXPIRE_DATE -I --inactive INACTIVE -m --mindays MIN_DAYS -M --maxdays MAX_DAYS -W --warndays WARN_DAYS –l 显示密码策略 ---->chage -l test2;chage -d 0 -m 1 -M 100 -W 4 -I 4 -E 2021-11-11 test2 15、用户信息查看修改命令 finger chfn chsh 15.1 finger,用户及登录邮件等信息 ---->finger root 15.2 chfn ,增加、修改用户备注信息,即/etc/passwd中用户第五个字段信息 ---->chfn root;finger root;getent passwd root 15.3 chsh ,修改用户使用的shell 16、groupadd [OPTION]... group_name -g GID: 指明GID号;[GID_MIN, GID_MAX] -r: 创建系统组 CentOS 6: ID<500 CentOS 7: ID<1000 17、groupmod ,组属性修改 groupmod [OPTION]... group -n group_name: 新名字 -g GID: 新的GID groupdel,组删除 groupdel GROUP 18、gpasswd gpasswd [OPTION] GROUP -a user 将user添加至指定组中 -d user 从指定组中移除用户user -A user1,user2,... 设置有管理权限的用户列表 newgrp命令:临时切换主组 如果用户本不属于此组,则需要组密码 19、groupmems,更改和查看组成员 groupmems [options] [action] -g, --group groupname 更改为指定组 (只有root) -a, --add username 指定用户加入组 -d, --delete username 从组中删除用户 -p, --purge 从组中清除所有成员 -l, --list 显示组成员列表 ---->groupmems -l -g test1 ---->groupmems -a test3 -g test1 19、chown 修改文件的属主 chown [OPTION]... [OWNER][:[GROUP]] FILE... 用法: OWNER OWNER:GROUP :GROUP 命令中的冒号可用.替换 -R: 递归 chown [OPTION]... --reference=RFILE FILE... chgrp 修改文件的属组 chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --reference=RFILE FILE... -R 递归 20、文件目录属主属组权限说明 文件的权限主要针对三类对象进行定义 owner: 属主, u group: 属组, g other: 其他, o 每个文件针对每类访问者都定义了三种权限 r: Readable w: Writable x: eXcutable 文件: r: 可使用文件查看类工具获取其内容 w: 可修改其内容 x: 可以把此文件提请内核启动为一个进程 目录: r: 可以使用ls查看此目录中文件列表 w: 可在此目录中创建文件,也可删除此目录中的文件 x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录 X:只给目录x权限,不给文件x权限 21 chmod 修改权限 chmod [OPTION]... OCTAL-MODE FILE... -R: 递归修改权限 chmod [OPTION]... MODE[,MODE]... FILE... 修改一类用户的所有权限: u= g= o= ug= a= u=,g= 修改一类用户某位或某些位权限 u+ u- g+ g- o+ o- a+ a- + - chmod [OPTION]... --reference=RFILE FILE... 参考RFILE文件的权限,将FILE的修改为同RFILE ---->chmod -R a+x 目录及所在文件都增加x权限,如果是X,则只会给目录加x权限,如果目录中有文件有x权限,则其也会增加x权限 22 三种特殊权限 suid 文件中属主位表现为s,一般为二进制文件,表示用户执行此文件时,会继承其所有者权限 ---->chmod u+s file sgid 1)继承二进制程序所有组的权限 2)作用于目录,此目录新建的文件继承目录的所属组 ---->chmod g+s file | dir sticky 作用于目录,此目录的文件只能被所有者删除 ---->chmod o+t dir SUID: user,占据属主的执行权限位 s: 属主拥有x权限 S:属主没有x权限 SGID: group,占据属组的执行权限位 s: group拥有x权限 S:group没有x权限 Sticky: other,占据other的执行权限位 t: other拥有x权限 T:other没有x权限 23、chattr 设定文件特定属性 +i:不能删除,改名,写内容; -i 去除锁定 +a 只能追加内容 lsattr,查看锁文件 ---->chattr +i file;lsattr 24、ACL,访问控制列表 setfacl -m [u|o|g]:用户名:rwx file|directory,不指用户则为对所有用户生效 getfacl file|directory,查看访问控制列表 ---->setfacl -m:test1:r ls;getfacl ls setfacl -m mask::权限:设置mask权限,一旦启用了acl,组权限则变为mask权限,设定权限不超过mask权限 ----setfacl -m mask::r ls ----setfacl -b file|directory 删除所有扩展acl权限 ---->setfacl -x u:yyc file,删除控制列表中指定控制权限 注意:如果启用了ACL,group权限就变为mask权限,ACL文件上的group权限是mask值(自定义用户,自定义组,拥有组的最大权限),而非传统的组权限
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94883