1 bash的基础特性: 2 globbing:文件名通配(整体文件名匹配,而非部分); 3 匹配模式:元字符 4 *:匹配任意长度的任意字符.例如:pa*,*pa,*pa*,*p*a* 5 ?:匹配任意单个字符.例如:pa?,??pa,p?a,p?a?, 6 []:匹配指定范围内的单个字符. 7 [a-z],[A-Z],[0-9],[a-z0-9] 8 [[:upper:]]:所有大写字母 9 [[:lower:]]:所有小写字母 10 [[:alpha:]]:所有写字母 11 [[:digit:]]:所有数字 12 [[:alnum:]]:所有字母和数字 13 [[:space:]]:所有空白字符 14 [[:punct:]]:所有标点符号 15 例如:pa[0-9][0-9],2[0-9][0-9],[abcd].... 16 [^]:匹配指定范围外的任意单个字符 17 [^[:upper:]] 18 [^0-9] 19 [^[:alnum:]] 20 21 IO重定向及管道 22 程序:数据+指令 23 输入数据流:<--标准输入(stdin),键盘; 24 输出数据流:-->标准输出(stdout),键盘; 25 错误输出: -->错误输出(stderr),显示器; 26 27 fd:file description,文件描述符 28 标准输入:0 29 标准输出:1 30 错误输出:2 31 32 IO重定向: 33 输出重定向: > 34 特性: 覆盖输出 35 输出重定向:>> 36 特性:追加输出 37 38 # set -C 39 禁止覆盖输出重定向至已存在文件; 40 此时可使用强制覆盖输出:> 41 # set +C 42 关闭上述特性 43 44 错误输出流重定向: 2> , 2>> 45 46 合并正常输出流和错误输出流: 47 (1) &> ,&>> 48 (2) cmd > /PATH 2>&1 49 cmd >> /PATH 2>&1 50 51 输入重定向: < 52 53 tr命令: 54 tr [option] ... set1 [set2] 55 把输入的数据当中的字符,凡是在set1定义范围内出现的,通过对位转换为set2出现的字符 56 用法1: tr set1 set2 < /PATH 57 用法2: tr -d set1 < /PATH (不输出set1范围字符) 58 注意:不修改原文件 59 60 here document: << 61 62 cat << EOF 63 cat > /PATH << EOF 64 65 管道|:连接程序,实现将前一个命令的输出直接定向后一个程序当做输入数据流 66 cmd | cmd | cmd |... 67 68 tee命令: (从标准输入读入,输出并写入文件) 69 cmd | tee /PATH 70 71 72 用户,组合权限管理 73 74 multi-tasks,multi-users 75 76 每个使用者: 77 用户标识,密码; 78 79 组:用户组,用户容器; 80 81 用户类别: 82 管理root 83 普通用户: 84 系统用户 85 登入用户 86 87 用户标识:userID,UID 88 16bits二进制数字:0-65535 89 管理员:0 90 普通用户:1-65635 91 系统用户:1-499(centos6),1-999(centos7) 92 登入用户:500-60000(centos6),1000-60000(centos7) 93 94 名称解析:名称转换 95 username <-> UID 96 根据名称解析库进行: /etc/passwd 97 组: 98 组类别1: 99 管理员组 100 普通用户组 101 系统组 102 登入组 103 组标识:GroupID,GID 104 管理员组:0 105 普通用户:1-65635 106 系统用户:1-499(centos6),1-999(centos7) 107 登入用户:500-60000(centos6),1000-60000(centos7) 108 名称解析:groupname <-> gid 109 解析库: /etc/group 110 组类别2: 111 用户的主/基本组 112 用户的附加组 113 组类别3: 114 私有组:组名同用户名,且包含一个用户; 115 公共组:组内包含了多个用户; 116 认证信息: 117 通过比对事先存储的与登录是提供的信是否一致; 118 password: 119 /etc/shadow 120 /etc/gshadow 121 密码使用策略: 122 1.使用随机密码 123 2.最短长度不要低于8位 124 3.应该使用大小字母,数字和标点符号混合密码 125 4.定期更换 126 加密算法: md5,sha 127 对此加密:加密和解密使用一个密码 128 非对称加密:加密和解密所有的一对儿密钥 129 密钥对儿:公钥,私钥; 130 单向加密:只能加密,不能解密;提取数据特征码; 131 定长输出;雪崩效应; 132 133 /etc/passwd: 用户的信息库 134 name:passwd:UID:GID:GECOS:directory:shell 135 136 name: 用户名 137 password:可以是加密的密码,也可是占位符x 138 UID: 用户ID,用来标识每个用户的唯一标示符 139 GID: 组ID,用来标识用户组的唯一标识符 140 GECOS: 141 directory: 142 shell: 143 144 /etc/shadow : 用户密码信息 145 用户名:加密的密码:最近一次修改密码时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段 146 147 /etc/group : 组的信息库 148 group_name:password:GID:user_list 149 user_list:该组的用户成员;以此组为附加组的用户的用户列表; 150 151 相关命令:useradd,userdel,usermod,passwd,groupadd,groupdel,groupmod,gpasswd,chage,chsh,id,su 152 153 groupadd: 创建组 154 groupadd [options] group 155 -g GID:指定GID;默认是上一个组的GID+1; 156 -r : 创建系统组; 157 groupdel: 删除组 158 groupmod:修改组属性 159 -g GID: 修改GID 160 -n new_name: 修改组名; 161 162 useradd:创建用户 163 useradd [options] LOGIN 164 -u,--uid UID :指定UID; 165 -g,--gid GROUP: 指定基本组ID,此组得事先存在; 166 -G,--group GROUP1[,GROUP2,...[,GROUPN]]] : 指定用户所属组得附加组,多个组用逗号分隔; 167 -c, --comment COMMENT : 指明注释信息; 168 -d, --home HOME_DIR : 指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件; 169 -s, --shell SHELL : 指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中; 170 -r, --system : 创建系统用户; 171 -M, --no-create-home: 不用创建用户的家目录; 172 注意:创建用户时的诸多默认设定配置文件为/etc/login.defs 173 174 useradd -D : 显示创建用户的默认配置; 175 useradd -D 选项 : 修改默认选项的值; 176 修改结果保存于/etc/default/useradd文件中; 177 178 usermod命令: 修改用户属性 179 usermod [选项] 登录 180 -u,--uid UID : 修改用户的ID为此处指定的新UID; 181 -g,--gid GROUP: 修改用户所属的基本组; 182 -G,--groups GROUP1[,GROUP2,...[,GROUPN]]] :修改用户所属的附加组;原来的附加组会被覆盖; 183 -a,append : 与-G一同使用,用于为用户追加新的附加组; 184 -c, --comment COMMENT : 修改注释信息; 185 -d, --home HOME_DIR : 修改用户的家目录; 用户原有的文件不会被转移至新位置; 186 -m,--move-home : 只能与-d选项一同使用,用于将原来的家目录移动为新的家目录; 187 -l,--login NEW_login:修改用户名; 188 -s,--shell SHELL : 修改用户的默认shell; 189 -L,--lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!"; 190 -U,--unlock : 解锁用户的密码; 191 userdel命令: 删除用户 192 userdel [option] 登录 193 -r:删除用户时一并删除其家目录; 194 例如: 195 userdel linuxde //删除用户linuxde,但不删除其家目录及文件; 196 userdel -r linuxde //删除用户linuxde,其家目录及文件一并删除 197 198 实操: 199 1.创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(gid为5000)和peguin(gid为5001); 200 groupadd distro -g 5000 201 groupadd peguin -g 5001 202 useradd gentoo -u 4001 -G distro,peguin 203 2.创建用户fedro,其注释信息为fedoro core,默认shell为/bin/tsch; 204 useradd fedro -c "fedoro core" -s /bin/tsch 205 3.修改gentoo用户的家目录为/var/tmp/gentoo:要求其原有文件仍能被用户访问; 206 usermod -d /var/tmp/gentoo -m gentoo 207 4.为gentoo新增附加组netadmin; 208 usermod -a -G netadmin gentoo 209 210 passwd命令: 211 passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warn‐ 212 days] [-i inactivedays] [-S] [--stdin] [username] 213 214 (1) passwd : 修改用户自己的密码; 215 (2) passwd username : 修改指定用户的密码,但仅root有此权限; 216 -l,-u : 锁定和解锁用户; 217 -d : 清除用户密码串; 218 -e date : 过期期限,日期; 219 -i days :非活动期限; 220 -n days : 密码的最短使用期限; 221 -x days : 密码的最长使用期限; 222 -w days : 警告期限; 223 224 --stdin: 225 用法:echo "password" | passwd --stdin username 226 gpasswd命令: 227 组密码文件: /etc/gshadow 228 229 gpasswd [选项] group 230 -a usename : 向组中添加用户 231 -d usename : 从组中移除用户 232 233 newgrp命令: 临时切换指定的组为基本组; 234 newgrp [-] [group] 235 -: 会模拟用户重新登录以实现重新初始化其工作环境; 236 237 chage命令:更改用户密码过期信息 238 chage [option] 登录名 239 -d 240 -E 241 -w 242 -m 243 -M 244 245 id命令: 显示用户真实和有效id; 246 id [OPTION]... [USER] 247 -u : 仅显示有效的uid 248 -g : 仅显示用户的基本组id 249 -G : 仅显示用户所属的所有组的id; 250 -n : 显示名字而非id; 251 252 su命令: switch user 253 登录式切换: 会通过读取目标用户的配置文件来重新初始化 254 su -, -l, --login username 255 非登录式切换:不会读取目标用户的配置文件进行初始化 256 su username 257 注意:管理员可无密码切换至其他任何用户; 258 259 -c 'cmd' : 仅以指定用户的身份运行此处指定的命令; 260 261 其他几个不常用命令:chsh chfn finger whoami 262 命令总结:groupadd,groupdel,groupmod,useradd,usermod,userdel,passwd,gpasswd,newgrp,id,su,chage 263 264 265 权限管理: 266 ls -l ,ll 267 rwxrwxrwx: 268 左三位: 定义user(owner)的权限 269 中三位: 定义group的权限 270 右三位: 定义other的权限 271 272 进程安全上下文: 273 进程对文件的访问权限应用模型: 274 进程的属主与文件的属主是否相同;如果相同,则应用属主权限; 275 否则,则检查进程的属主是否属于文件的属组;如果是则应用属组权限; 276 否则,就只能应用other的权限; 277 权限: 278 r: readable,读 279 w: writable,写 280 x: excutable,执行 281 282 文件: 283 r:可获取文件的数据; 284 w:可修改文件的数据; 285 x:可将此文件运行为进程; 286 目录: 287 r:可使用ls命令获取其下的所有文件列表; 288 w:可修改此目录下的文件列表;即创建或删除文件; 289 x:可cd至此目录,且可使用ll 来获取所有文件的详细信息; 290 291 权限管理命令: 292 chmod命令: 293 chmod [OPTION]... MODE[,MODE]... FILE... 294 chmod [OPTION]... OCTAL-MODE FILE... 295 chmod [OPTION]... --reference=RFILE FILE... 296 297 三类用户: 298 u:属主 299 g:属组 300 o:其他 301 a:所有 302 303 (1) chmod [OPTION]... MODE[,MODE]... FILE... 304 mode表示法: 305 赋权表示法:直接操作一类用户的所有权限位rwx; 306 u= 307 g= 308 o= 309 a= 310 授权表示法:直接操作一类用户的一个权限位r,w,x; 311 u+,u- 312 g+,g- 313 o+,o- 314 a+,a- 315 (3) chmod [OPTION]... --reference=RFILE FILE... 316 引用某个文件RFILE的权限,修改为file的权限; 317 318 选项: 319 -R,--recursive: 递归修改; 320 321 从属关系管理命令:chown,chgrp 322 chown命令: 323 chown [OPTION]... [OWNER][:[GROUP]] FILE... 324 chown [OPTION]... --reference=RFILE FILE... 325 326 选项: 327 -R: 递归修改 328 329 chgrp命令: 330 chgrp [OPTION]... GROUP FILE... 331 chgrp [OPTION]... --reference=RFILE FILE... 332 333 思考: 用户对目录有写权限,但对目录下的文件没有写权限时,能否修改此文件内容?能否删除此文件? 334 335 umask: 文件的的权限反向掩码,遮掩码; 336 文件: 337 666-umask 338 目录: 339 777-umask 340 341 注意: 之所以文件用666去减,表示文件默认不能拥有执行权限; 342 umask: 023 默认022 343 666-023=643+1=644 344 777-023=754 345 346 umask命令: 347 umask: 查看当前umask 348 umask MASK: 设置umask 349 350 注意:此类设定仅对当前shell进程有效(通过命令进行的都是仅对当前shell有效); 351 352 实操: 353 1.新建系统组mariadb,新建系统用户mariadb,属于mariadb组,要求其没有家目录,且shell为/sbin/nologin;尝试root切换至用户,查看命令提示符; 354 useradd -M -r -s /sbin/nologin mariadb 355 2.新建GID为5000的组mageedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名; 356 groupadd -g 5000 mageedu 357 useradd -d /users/gentoo gentoo 358 echo gentoo | passwd --stdin gentoo 359 3.新建用户fedora,其家目录为/users/www;密码同用户名; 360 useradd -d /users/www fedora 361 echo gentoo | passwd --stdin fedora 362 4.新建用户www,其家目录为/users/www;删除www用户,但保留其家目录; 363 useradd -d /users/www www 364 userdel www 365 5.为用户gentoo和fedora增附加组megeedu; 366 groupmod mageedu 367 usermod -G megeedu gentoo 368 usermod -G megeedu fedora 369 6.复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为mageedu,并让属组对目录本身拥有写权限; 370 cp /var/log /tmp/ 371 chown -R :mageedu /tmp/log 372 chmod g+w /tmp/log 373 374 install命令: 375 单源复制: 376 install [OPTION]... [-T] SOURCE DEST 377 多源复制: 378 install [OPTION]... SOURCE... DIRECTORY 379 install [OPTION]... -t DIRECTORY SOURCE... 380 创建目录: 381 install [OPTION]... -d DIRECTORY... 382 383 常用选项: 384 -m,--mode=MODE : 设定目标文件权限,默认为755; 385 -o,--owner=OWNER: 设定目标文件属主; 386 -g,--group=GROUP: 设定目标文件属组; 387 388 mktemp命令: 389 NAME 390 mktemp - create a temporary file or directory 391 392 SYNOPSIS 393 mktemp [OPTION]... [TEMPLATE] 394 395 例如: 396 myfile=$(mktemp /tmp/mytmp.xxx) 397 常用选项: 398 -d: 创建临时目录 399 400 注意:mktemp会创建的临时文件名直接返回,因此,可直接通过命令引用保存起来;
用户及权限管理
猜你喜欢
转载自www.cnblogs.com/liuyuanq/p/9788673.html
今日推荐
周排行