5.1linux运维高级系统应用-glob通配及IO重定向
bash的基础特性:
globbing:文件名通配
匹配模式:元字符 *:匹配任意长度的任意字符 ?:匹配任意单个字符 []:匹配指定范围内的任意单个字符 有几种特殊格式: [a-z],[A-Z],[0-9],[a-z0-9] [[:upper:]]:所有大写字母 [[:lower:]]:所有小写字母 [[:Alpha:]]:所有字母 [[:digit:]]:所有数字 [[:alnum:]]:所有的字母数字 [[:space:]]:所有空白字符 [[:punct:]]:所有标点符号 [^]:匹配指定范围外的任意单个字符 [^[:upper:]] [^0-9] [^[:alnum:]]
IO 重定向及管道
程序:指令+数据 程序:IO 可用于输入的设备:文件 键盘设备、文件系统上的常规文件,网卡等; 可用于输出的设备:文件 显示器、文件系统上的常规文件、网卡等: 程序的数据流有三种: 输入的数据流:<-- 标准输入(stdin),键盘 输出的数据流;--> 标准输出(stdout),显示器 错误输出流: --> 错误输出(stderr),显示器 fd: file descriptor,文件描述符 标准输入:0 标准输出:1 错误输出:2 IO重定向 输出重定向: > 覆盖输出 >> 追加输出 set -C 禁止覆盖输出已存在的文件 [[email protected] ~]# cat res.log > f1 -bash: f1: cannot overwrite existing file 加|强制覆盖 [[email protected] ~]# cat res.log >| f1 错误输出流重定向:2> 2>> 合并正常输出流和错误的输出: (1)&>,&>> (2)COMMAND > /PATH 2>&1 COMMAND >> /PATH 2>&1 特殊设备:/dev/null 输入重定向:< tr命令: tr [OPTION]... SET1 [SET2] 把输入的数据当中的字符,凡是在SET1定义范围内出现的,通通对应转换为SET2出现的字符 用法: tr SET1 SET2 </PATH/file 用法: tr -d SET1 </PATH/file 注意: *** 作不修改原文件 Here document: << cat << EOF cat > /PATH/file << EOF [[email protected]11 ~]# cat > C.txt << EOF > 123 > cafad > EOF [[email protected]11 ~]# 管道:连接程序,实现将前一个命令的输出直接定向后一个程序当作输入数据流 COMMAND1 | COMMAND2 | COMMAND3 | ... tee命令: COMMAND | tee /PATH/file
5.2 linux系统用户和组全面讲解
用户、组和权限管理 Multi-tasks,multi-Users 每个使用者: 用户标识、密码: Authentication Authorization Audition 组:用户组,用户容器 用户类别: 管理员 普通用户 系统用户 登录用户 用户标识:UserID,ID 16bits二进制数字:0-65535 管理员:0 普通用户:1-65535 系统用户:1-499(v6),1-999(v7) 登录用户:500-60000(v6),1000-60000(v7) 名称解析:名称转换 username <--> UID 根据名称解析库进行: /etc/passwd 组: 组类别1: 管理组 普通用户组 系统组 登录组 组标识:GroupID,GID 16bits二进制数字:0-65535 管理组:0 普通用户组:1-65535 系统组:1-499(v6),1-999(v7) 登录组:500-60000(v6),1000-60000(v7) 名称解析:名称转换 groupname <--> GID 根据名称解析库进行: /etc/group 组类别2: 用户的基本组 用户的附加组 组类别3: 私有组:组名同用户名,且只包含一个用户 公共组:组内包含了多个用户 认证信息: 通过比对事先存储的,与登录时提供的信息是否一致 password: /etc/shadow /etc/gshadow 密码的使用策略 1、使用随即密码 2、最短长度不要低于8位 3、应该使用大写字母、小写字母、数字和标点符号四类字符中的至少三类 4、定期更换 加密算法: 对称加密:加密和解密使用同一个密码 非对称加密:加密和解密使用的一对儿密钥 密钥对儿: 公钥:public key 私钥:private key 单向加密:只能加密,不能解密:提取数据特征码: 定长输出 雪崩效应 算法: md5: sha: sha256 sha384
在计算之时加salt,添加的随机数
/etc/passwd:用户信息库
name:password:UID:GID:GECOS:directory:shell
name:用户名
password:
UID:
GID:用户所属的主组的ID号
GECOS:注释信息
directory:用户的家目录
shell:用户的默认shell,登录时默认shell程序
/etc/shadow
用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期限:有限期限:保留
/etc/group
group_name:password:GID:user_List
user_List:该组的成员,以此组为附加组的用户的用户列表
相关命令: useradd,userdel,usermod,passwd,groupadd,groupdel,groupmod,gpasswd,chage,chsh,ID,su
5.3linux用户和组管理命令演练和实战应用
linux用户和组管理 安全上下文: 进程以其发起者的身份运行 进行对文件的访问权限,取决于发起此进程的用户的权限 为了能够让那些后台进行或服务类进程以非管理员的身份进行,通常需要为此创建多个普通用户:这些用户从不登录系统 groupadd命令:添加组 group [OPTION] group_name -g GID:指定GID:默认是上一个组的GID+1 -r:创建系统组 groupmod命令:修改组属性 groupmod -g GID:修改组ID -n newname:修改组名 groupdel命令:删除组 useradd命令:添加用户 -u UID:指定UID -g GID:指定基本组ID,次组必须存在 -G group1,group2:添加用户的附加组 -c comment:用户描述 -d:创建新用户并指定其家目录,通过复制/etc/skel此目录并重命名实现:指定的家目录路径如果事先存在,则不会为用户复制环境配置文件 -s:指定用户默认shell,可用的shell--/etc/shells -r:创建系统用户 注意:创建用户时的诸多默认设定配置文件为/etc/login.defs -D:创建用户时默认的配置列表 -D 选项: 修改默认选项的值: 修改的结果保存于/etc/default/useradd文件中; usermod命令:修改用户属性 -u:修改UID -g:修改用户所属的基本组: -G:修改用户所属的附加组,如果已有则覆盖原有的 -a:与-G一起使用,用于为用户追加新的附加组 -c comment:修改注释信息 -d HOME_DIR:修改用户家目录 -m:只能与-d选项一同使用,用于将原来的目录移动到新的家目录 -l NEW_LOGIN:修改用户名 -s:修改用户默认shell -l: 锁定用户密码,即在用户原来的密码字符串之前添加! -U:解锁用户的密码 userdel命令:删除用户 userdel[option] user -r:删除用户时一并删除其家目录 passwd命令: (1)passwd:修改用户自己的密码: (2)passwd USERname:修改指定用户的密码,root执行 -l,-u:锁定和解锁用户 -d: -e DATE:过期期限,日期 -i DAYS:非活动期限 -n DAYS:密码的最短使用期限 -x DAYS:密码的最长使用期限 -w DAYS:警告期限 --stdin echo "PASSWORD" | passwd --stdin USERname gpasswd命令: gpasswd [OPTION] group -a USERname:向组中添加用户 -d USERname:从组中移除用户 newgrp命令:临时切换指定的组为基本组 chage命令:更改用户密码过期信息 -d: -E: -W: -m: -M: ID命令:显示用户真的和有效的用户信息 ID [OPTION]...USER -u:仅显示用户有效UID -g:仅显示用户的基本组ID -G:仅显示用户所属的附加组ID -n:显示名字而非ID su命令:switch user 登录式切换:读取用户的配置文件来进行重新初始化 su - USERname 非登录式切换:不会读取用户的配置文件进行初始化 su USERname 注意:管理员可无密码切换至其它任何用户 -c ‘COMMAND‘:仅以指定用户的身份运行此处指定的命令 其它几个命令:chsh,chfn,finger,whoami,pwck
命令总结:groupadd,useradd,newgrp,su,chage
5.4linux系统下用户权限管理
权限管理: 进程安全上下文: 进程对文件的访问权限应用模型 进程的属主与文件的属主是否相同:如果相同,则应用属主权限 否则,则检查进程的属主是否属于文件的属组,如果是,则应用属组权限 否则,就只能应用other的权限 权限: r: read 可获取文件的数据 w: write 可修改文件的数据 x: excute 可将此文件运行为进程 文件: r: read 可获取文件的数据 w: write 可修改文件的数据 x: excute 可将此文件运行为进程 目录: r: 可使用ls命令获取其下的所有文件列表 w: 可修改此目录下的文件列表,即创建或删除文件 x: 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息上 权限管理命令: chmod命令: (1)chmod [OPTION]... MODE file MODE表示法: 赋权表示法: u= g= o= a= 授权表示法:直接 *** 作一类用户的一个权限位:r,x,w u+,u- g+,g- o+,o- a+,a- (2)chmod [OPTION]... OCTAL-MODE file... (3)chmod [OPTION]... --reference=Rfile file... 选项: -R: 递归修改 从属关系管理命令:chown,chgrp chown命令: chown [OPTION]... [OWNER][:[GROUP]] file... chown [OPTION]... --reference=Rfile file... 选项: -R: chgrp命令: chgrp [OPTION]... [OWNER][:[GROUP]] file... chgrp [OPTION]... --reference=Rfile file... 注意:仅管理员能修改用户的属主和属组 思考:用户对目录有写权限,但对目录下的文件没有写权限时,则不能修改此文件,但可以删除 umask:文件的权限反射掩码:遮罩码: 文件: 666-umask 目录: 777-umask 注意:之所以用666去减,表示文件默认不能拥有执行权限,如果减得的结果中有执行权限,则需要将其加1 umask:023 666-023=644 777-023=754 umask命令: umask: 查看当前umask umask MASK: 设置umask 注意:此类设定仅对当前shell进程有效 练习:完成以下任务 1、新建系统组mariadb,新建系统用户mariadb 属于mariadb组,要求其没有家目录,且shell为/sbin/nologin:尝试root切换至用户,查看其命令提示符 2、新建GID为5000的组mageedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名 3、建新用户fedora,其家目录为/users/fedora,密码同用户名 4、新建用户www,其家目录为/users/www:删除www用户,但保留其家目录 5、为用户gentoo和fedora新增附加组mageedu 6、复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为mageedu,并让属组对目录本身拥有写权限install install - copy files and set attributes 单源复制: install [OPTION]... [-T] SOURCE DEST 多源复制: install [OPTION]... SOURCE... DIRECTORY install [OPTION]... -t DIRECTORY SOURCE... 创建目录: install [OPTION]... -d DIRECTORY... 常用选项: -m,--mode=MODE:设定目录文件权限,默认为755 -o,--owner=OWNER:设定目标文件属主 -g,--group=GROUP:设定目标文件属组 mktemp命令: mktemp - create a temporary file or directory mktemp [OPTION]... [TEMPLATE] 常用选项: -d:创建临时目录 例子: [[email protected] ~]# mktemp /tmp/mytemp.XXXX /tmp/mytemp.jQBI 注意:mktemp会将创建的临时文件名直接返回,因此,可直接通过命令引用保存起来 博客作业:用户及权限管理总结
以上是内存溢出为你收集整理的5.Linux用户组管理及用户权限全部内容,希望文章能够帮你解决5.Linux用户组管理及用户权限所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)