Linux 学习笔记(三)

echo ------- >> 1.txt 

 

[zkpk@localhost 桌面]$ df -Th          //查看磁盘使用情况

文件系统    类型      容量  已用  可用 已用%% 挂载点

/dev/sda3     ext4     20G  5.2G   13G  29% /

tmpfs        tmpfs   1000M  124K 1000M   1% /dev/shm

/dev/sda1     ext4    194M   28M  157M  15% /boot

 

用户及权限管理

虚拟用户是跑服务用的。

组是一堆用户的集合,一个用户可以属于多个组

UID = 0 -> 超级用户

在创建张三用户的同时也会自动创建张三组,并把张三加入进去,由于张三是第一个用户,所以这叫张三的基本组,后加入的用户都是附加组

基本组与附加组的区别:设置磁盘配额时,针对基本组,不针对附加组 ,但是生产环境下大多针对用户做磁盘配额。

 

vim/etc/passwd 用户所在地

root:x:0:0:root:/root:/bin/bash

    x:密码占用符,在另一个文件中

    0:UID

    0:GID

    root:什么用户,描述,可以不要

    /root:家目录(宿主目录)

    /bin/bash: 它的shell,onlogin:不能登陆系统

 

/etc/shadow  用户密码所在地

root:$6$aF2yZRcY.dzfTF8B$n128ssxjA0oq39hpBGKCwcsPwcI/x6W8px9xC5Qsf8oiCqp3MvBmvGpNmXjw6OoTOXodvAoycL32ULL1dMVxE0:16786:0:99999:7::: 

 //密码加密字符串,16786代表上一次改密码距离今天过了多少天,从1970-1-1开始算

 //99999  :密码有效期,期限可以改   

 //7    : 过期时间

hsqldb:!!:16786:::::  !!表示这个用户没有密码(被锁定了),没有密码不能登陆,区别于空密码

ftp:*:15155:0:99999:7:::  *表示这个用户没有密码

 

/etc/group   组所在地

root:x:0:root

    root:root组

    x:表示组的密码占位符,已经淘汰不用了

    0:GID

    root:组内成员,可以通过VIM,插入添加组成员

daemon:x:2:root,bin,daemon 

 

/etc/gshadow 组密码所在地,已无用

 

 

添加用户

[root@localhost 桌面]# useradd zhangsan

[root@localhost 桌面]# tail -1 /etc/passwd

zhangsan:x:501:501::/home/zhangsan:/bin/bash

[root@localhost 桌面]# tail -1 /etc/shadow

zhangsan:!!:16790:0:99999:7:::

[root@localhost 桌面]# id zhangsan

uid=501(zhangsan) gid=501(zhangsan) 组=501(zhangsan)

 

[root@localhost 桌面]# useradd -u 4444 -d /churchill -e 2016-12-31 -s /sbin/nologin churchill

[root@localhost 桌面]# tail -1 /etc/passwd    //查看用户

churchill:x:4444:4444::/churchill:/sbin/nologin

[root@localhost 桌面]# ls /    //查看宿主目录churchill  

10K     bin   cgroup     dev   etc   lib    lost+found  misc  net  proc  sbin     srv  test  usr

backup  boot  churchill  dir1  home  lib64  media       mnt   opt  root  selinux  sys  tmp   var

[root@localhost 桌面]# 

[root@localhost 桌面]# tail -1 /etc/shadow  //查看密码

churchill:!!:16790:0:99999:7::17166:

[root@localhost 桌面]# 

 

[root@localhost 桌面]# passwd -d zhangsan  //将用户密码设置为空

[root@localhost 桌面]# passwd           //修改本用户密码

 

[root@localhost 桌面]# usermod -l san zhangsan  //问题解决如下

usermod:用户 zhangsan 目前已登录

[root@localhost 桌面]# userdel -r zhangsan    

userdel:用户 zhangsan 目前已登录

注意加入-r参数仍旧不能删除正在登录的用户。

如果要删除正在登录的用户可以使用-f参数:

# userdel -f abc

 

 

[root@localhost 桌面]# tail -1 /etc/shadow

churchill:!!:16790:0:99999:7::17166:        //99999

[root@localhost 桌面]# chage -M 30 churchill  //修改用户密码有效期

[root@localhost 桌面]# tail -1 /etc/shadow

churchill:!!:16790:0:30:7::17166:         //30

[root@localhost 桌面]# 

 

[root@localhost 桌面]# chage -d 0 zhangsan   //用户下次登录时强制修改密码

[zkpk@localhost 桌面]$ vim /etc/login.defs  //修改有效密码时间

SS_MAX_DAYS   99999 //有效时间

PASS_MIN_DAYS   0

PASS_MIN_LEN    5

PASS_WARN_AGE   7

 

 

 

[root@localhost 桌面]# groupadd admins    //添加组

[root@localhost 桌面]# vim /etc/group

[root@localhost 桌面]# useradd zhukov

[root@localhost 桌面]# passwd zhukov

更改用户 zhukov 的密码 。

新的 密码:

无效的密码: 过短

无效的密码: 过于简单

重新输入新的 密码:

passwd: 所有的身份验证令牌已经成功更新。

 

[root@localhost home]# groupmod -n mmm mmmm    //修改组名

[root@localhost 桌面]# group -a zhukov admins

bash: group: command not found

[root@localhost 桌面]# gpasswd -a user1 admins

Adding user zhukov to group admins

[root@localhost 桌面]# vim /etc/group

[root@localhost 桌面]# id zhukov

uid=4445(zhukov) gid=4446(zhukov) 组=4446(zhukov),4445(admins)

[root@localhost 桌面]# 

 

//gpasswd  添加删除组成员

[root@localhost 桌面]# gpasswd -M root,zhangsan,bin admins //定义admins,结果如:dmins:x:4445:root,zhangsan,bin

[root@localhost 桌面]# vim /etc/group

[root@localhost 桌面]# 

 

// su 与 su - 的区别

大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行,这就需要从当前用户切换到root用户,Linux中切换用户的命令是su或su -,下面就su命令和su -命令最大的本质区别给大家详解一下:  

 

前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su - 以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。 

[root@localhost ~]# su

[root@localhost ~]# echo $PATH

/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/uuuu/bin

[uuuu@localhost root]$ su -

密码:

[root@localhost ~]# echo $PATH

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

 

 

//root与zkpk的 shell命令不同

[root@localhost ~]# su zkpk

[zkpk@localhost root]$ echo $PATH

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[root@localhost ~]# su - zkpk

[zkpk@localhost ~]$ echo $PATH

/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/zkpk/bin

[zkpk@localhost ~]$ 

 

 

 

visudo 语法错误不让保存

vim /etc/sudoers 语法错误也可以保存

 

zkpk    ALL=/usr/sbin/useradd,/usr/bin/passwd,!/usr/bin/passwd root //不能修改root密码

zkpk    ALL=/usr/sbin/useradd,/usr/bin/passwd ?*,!/usr/bin/passwd root  //如果不加?*,在zkpk用户下,sudo passwd 会修改root密码

 

/etc/skel/  //新建用户的主目录的模板

//如果每新建一个用户,其家目录下有README文件  ?

// 在 /etc/skel/  文件下添加README即可

[root@localhost 桌面]# cd /etc/skel/

[root@localhost skel]# ls -a

.  ..  .bash_logout  .bash_profile  .bashrc  .emacs  .gnome2  .mozilla

[root@localhost skel]# 

//.bash_profile 声明变量, 用户登录时,生效

//.bashrc  用户登录时,会自动执行里面的命令,生效

//.bash_logout 当用户注销/退出时,里面命令生效

[root@localhost ~]# su - zhangsan

[zhangsan@localhost ~]$ ls -a

.   .bash_history  .bash_profile  .emacs   .mozilla

..  .bash_logout   .bashrc        .gnome2

[zhangsan@localhost ~]$ 

 

 

 

 

 

[root@localhost skel]# vim /etc/default/useradd 

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

 

 

[zhangsan@localhost ~]$ who

root     tty1         2015-12-21 14:00 (:0)

root     pts/0        2015-12-21 14:01 (:0.0)

[zhangsan@localhost ~]$ w

 14:26:37 up 27 min,  2 users,  load average: 0.28, 0.24, 0.19

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     tty1     :0               14:00   26:57   9.99s  9.99s /usr/bin/Xorg :

root     pts/0    :0.0             14:01    0.00s  0.08s  0.06s w

[zhangsan@localhost ~]$ users

root root

[zhangsan@localhost ~]$ 

 

 

访问权限

读取r:

允许查看文件内容、显示目录列表

写入w:

允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

可执行x:允许运行程序、切换目录

 

//chmod 修改文件或目录的权限

[root@localhost ~]# chmod g+w,o-r 12345

[root@localhost ~]# chmod 644 12345

 

//chown 修改属主,属组

[root@localhost ~]# ll 12345

-rw-r--r--. 2 root root 11 12月 18 16:53 12345

[root@localhost ~]# chown zkpk.admins 12345

[root@localhost ~]# ll 12345

-rw-r--r--. 2 zkpk admins 11 12月 18 16:53 12345

[root@localhost ~]# 

 

//chgrp 只能修改属组

[root@localhost ~]# chgrp root 12345

[root@localhost ~]# ll 12345

-rw-r--r--. 2 zkpk root 11 12月 18 16:53 12345

[root@localhost ~]# 

 

//使用附加位权限

SET位权限

   主要用途:

     为可执行(有 x 权限的)文件设置,权限字符为“s”

    他用户执行该文件时,将拥有属主或属组用户的权限

   SET位权限类型:

    SUID:表示对属主用户增加SET位权限

    SGID:表示对属组内的用户增加SET位权限

 

 

//SUID

[root@localhost ~]# ll /usr/bin/passwd 

-rwsr-xr-x. 1 root root 32680  1月 29 2010 /usr/bin/passwd 

[root@localhost ~]# ls -lh /etc/shadow

----------. 1 root root 1.4K 12月 21 14:05 /etc/shadow

[root@localhost ~]# 

 

//添加SUID

[root@localhost ~]# chmod +x 1.txt 

[root@localhost ~]# ll 1.txt 

-rwxr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt

[root@localhost ~]# chmod u+s 1.txt     //添加SUID

[root@localhost ~]# ll 1.txt 

-rwsr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt

[root@localhost ~]# 

[root@localhost ~]# chmod u+s 1.txt 

[root@localhost ~]# ll 1.txt 

-rwsr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt

[root@localhost ~]# chmod u-x 1.txt 

[root@localhost ~]# ll 1.txt 

-rwSr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt

[root@localhost ~]# 

 

//使用附加位权限

粘滞位权限(Sticky)

    主要用途:

    为公共目录设置,权限字符为“t”

    用户不能删除该目录中其他用户的文件

[root@localhost ~]# ls -ld /tmp/

drwxrwxrwt. 31 root root 4096 12月 21 22:02 /tmp/

[root@localhost ~]# ls -ld /var/tmp/

drwxrwxrwt. 2 root root 4096 12月 21 17:31 /var/tmp/

 

//设置SET位、粘滞位权限

   使用权限字符

    chmod ug±s 可执行文件

    chmod o ±t 目录名

   使用权限数字:

    chmod mmmm 可执行文件

    m为4时 对应SUID,2对应 SGID,1对应粘滞位,可叠加

 

//细部权限规划:ACL的使用

ACL是 Access Control List 的缩写主要目的是在

提供传统的owner,group,others,read,

write,execute权限之外的细部权限设定。

 

//setfacl

[root@localhost ~]# chmod 770 /test/

[root@localhost ~]# ls -lhd /test/

drwxrwx---. 4 root root 4.0K 12月 18 10:56 /test/

[root@localhost ~]# su - zkpk

[zkpk@localhost ~]$ cd /test/

-bash: cd: /test/: 权限不够

[zkpk@localhost ~]$ ls /test/

ls: 无法打开目录/test/: 权限不够

[zkpk@localhost ~]$ exit

logout

[root@localhost ~]# setfacl -m u:zkpk:7 /test/

[root@localhost ~]# ls -lhd /test/

drwxrwx---+ 4 root root 4.0K 12月 18 10:56 /test/

[root@localhost ~]# su - zkpk

[zkpk@localhost ~]$ cd /test/

[zkpk@localhost test]$ 

 

//getfacl

[zkpk@localhost test]$ getfacl /test/

getfacl: Removing leading '/' from absolute path names

# file: test/

# owner: root

# group: root

user::rwx

user:zkpk:rwx

group::rwx

mask::rwx

other::---

[zkpk@localhost test]$ 

 

//移除所有的 ACL 设定参数

[root@localhost ~]# setfacl -b /test/   //移除

[root@localhost ~]# getfacl /test/

getfacl: Removing leading '/' from absolute path names

# file: test/

# owner: root

# group: root

user::rwx

group::rwx

other::---

 

 

 

//设置光盘挂载点

[root@localhost media]# df -Th

文件系统    类型      容量  已用  可用 已用%% 挂载点

/dev/sda3     ext4     20G  5.2G   13G  29% /

tmpfs        tmpfs   1000M  264K 1000M   1% /dev/shm

/dev/sda1     ext4    194M   28M  157M  15% /boot

/dev/sr0   iso9660    3.4G  3.4G     0 100% /media/RHEL_6.2 x86_64 Disc 1

[root@localhost media]# cd

[root@localhost ~]# umount /dev/cdrom 

[root@localhost ~]# df -Th

文件系统    类型      容量  已用  可用 已用%% 挂载点

/dev/sda3     ext4     20G  5.2G   13G  29% /

tmpfs        tmpfs   1000M  264K 1000M   1% /dev/shm

/dev/sda1     ext4    194M   28M  157M  15% /boot

[root@localhost ~]# mount /dev/cdrom /media/

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@localhost ~]# df -Th

文件系统    类型      容量  已用  可用 已用%% 挂载点

/dev/sda3     ext4     20G  5.2G   13G  29% /

tmpfs        tmpfs   1000M  264K 1000M   1% /dev/shm

/dev/sda1     ext4    194M   28M  157M  15% /boot

/dev/sr0   iso9660    3.4G  3.4G     0 100% /media

[root@localhost ~]# 

 

 

//设置yum仓库

[root@localhost yum.repos.d]# pwd

/etc/yum.repos.d

[root@localhost yum.repos.d]#vim localhost.repo

 

[localhost]

name=localhost

baseurl=file:///media    //指定仓库位置,   仓库有两种网络的(ftp://,http://),本地的(file://)

enabled=1                    //启用这个源

gpgcheck=0                 // 不做校验

~     

 

[root@localhost yum.repos.d]# yum install samba -y //安装samba,-y

 

[root@localhost yum.repos.d]# yum history 

Loaded plugins: product-id, refresh-packagekit, security, subscription-manager

Updating certificate-based repositories.

ID     | Login user               | Date and time    | Action(s)      | Altered

-------------------------------------------------------------------------------

     5 | root <root>              | 2015-12-21 17:31 | Erase          |    1   

     4 | root <root>              | 2015-12-21 17:27 | Erase          |    1   

     3 | root <root>              | 2015-12-21 17:23 | Install        |    1   

     2 | root <root>              | 2015-12-21 17:21 | Install        |    1   

     1 | System <unset>           | 2015-12-17 23:35 | Install        | 1486   

history list

[root@localhost yum.repos.d]# yum history undo 3 //将 3 卸载

 

//关闭防火墙

[root@localhost ~]# service iptables stop 

iptables:清除防火墙规则:                                 [确定]

iptables:将链设置为政策 ACCEPT:filter                    [确定]

iptables:正在卸载模块:                                   [确定]

[root@localhost ~]# 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_42325841/article/details/81501431