Linux权限与用户

1.修改时间为2016-11-01 120626
[root@localhost ~]# date 110112062016.26
Tue Nov  1 12:06:26 CST 2016
2.
修改成功后按照%Y-%m-%d的格式输出,并将输出结果保存到/mnt/date.txt;
[root@localhost ~]# date +%Y-%m-%d |tee /mnt/date.txt
2016-11-01
3.
查看80天以前的日期,重定向文件到/mnt/datafile,然后查看80天以后的日期,追加到/mnt/datafile;
[root@localhost ~]# date -d -80days
Sat Aug 13 12:11:24 CST 2016
[root@localhost ~]# date -d -80days >/mnt/datafile
[root@localhost ~]# date -d +80days
Fri Jan 20 12:14:04 CST 2017

[root@localhost ~]# date -d +80days >>/mnt/datafile
4.
用一条命令查看/mnt/datafile文件的字节数,字符数,行数,单词数;
[root@localhost ~]# wc -clmw /mnt/datafile
 2 12 58 58 /mnt/datafile
5.
通过快捷方式执行最近一条含有”date“关键字的命令
[root@localhost ~]# !date
date -d +80days >>/mnt/datafile
6.
用一条命令在/mnt/目录下创建文件westosX_fileY,x的取值范围为{a,b,c},Y的取值范围为8-13
[root@localhost ~]# touch /mnt/westos{a,b,c}_file{8..13}
[root@localhost ~]# ls /mnt
datafile        westosa_file13  westosb_file11  westosb_file9   westosc_file13
westosa_file10  westosa_file8   westosb_file12  westosc_file10  westosc_file8
westosa_file11  westosa_file9   westosb_file13  westosc_file11  westosc_file9
westosa_file12  westosb_file10  westosb_file8   westosc_file12
7.
westosX_fileY的文件均移动到/tmp目录下;
[root@localhost ~]# mv /mnt/westos{a,b,c}_file{8..13} /tmp
[root@localhost ~]# ls /tmp
8.
复制/etc/group文件到/mnt
       -vim
编辑该文件,复制前三行,粘贴到第五行;
       -
剪贴第五行粘贴到最后一行;
       -
删除倒数第三行;
       -
3-10行的最开始批量添加root单词
       -
在左右分屏的情况下,将5-10行中的root替换为kiosk
       -
退出左右分屏,在上下分屏的情况下替换全文的kioskstudent
[root@localhost mnt]# cat group
root:x:0:
bin:x:1:
studentdaemonx2:
studentsys:x:3:
student
studentstudent:x:0:
studentbin:x:1:
studentdaemon:x:2:
studenttty:x:5:
studentdisk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:student
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:30:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
ssh_keys:x:999:
systemd-journal:x:190:
dbus:x:81:
polkitd:x:998:
avahi:x:70:
avahi-autoipd:x:170:
rpc:x:32:
dip:x:40:
cgred:x:997:
rpcuser:x:29:
nfsnobody:x:65534:
ovirtagent:x:175:
postdrop:x:90:
postfix:x:89:
sshd:x:74:
chrony:x:996:
student:x:1000:
usbmuxd:x:113:
colord:x:995:
abrt:x:173:
libstoragemgmt:x:994:
unbound:x:993:
kvm:x:36:qemu
qemu:x:107:
saslauth:x:76:
ntp:x:38:
rtkit:x:172:
radvd:x:75:
pulse-access:x:992:
pulse:x:171:
gdm:x:42:
gnome-initial-setup:x:991:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
slocate:x:21:
adm:x:4:
9.
配置vim,使其在编辑文件时拥有以下功能1:显示行号,鼠标可以操纵光标位置
[root@localhost mnt]# vim /etc/vimrc
配置以上文件在文件末尾添加上:set nu setmouse=a
[root@localhost mnt]# cat /etc/vimrc
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
   setfileencodings=ucs-bom,utf-8,latin1
endif

set nocompatible    " Use Vimdefaults (much better!)
set bs=indent,eol,start     " allowbackspacing over everything in insert mode
"set ai         " always setautoindenting on
"set backup     " keep a backupfile
set viminfo='20,\"50    "read/write a .viminfo file, don't store more
            " than 50 lines ofregisters
set history=50      " keep 50 linesof command line history
set ruler       " show the cursorposition all the time

" Only do this part when compiled with support for autocommands
if has("autocmd")
  augroup redhat
  autocmd!
  " In text files, always limit thewidth of text to 78 characters
  " autocmd BufRead *.txt settw=78
  " When editing a file, always jumpto the last cursor position
  autocmd BufReadPost *
  \ if line("'\"") > 0&& line ("'\"") <= line("$") |
  \  exe "normal! g'\"" |
  \ endif
  " don't write swapfile on mostcommonly used directories for NFS mounts or USB sticks
  autocmd BufNewFile,BufReadPre/media/*,/run/media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp
  " start with spec filetemplate
  autocmd BufNewFile *.spec 0r/usr/share/vim/vimfiles/template.spec
  augroup END
endif

if has("cscope") &&filereadable("/usr/bin/cscope")
   set csprg=/usr/bin/cscope
   set csto=0
set nu
set mouse=a
   set cst
   set nocsverb
   " add any database in currentdirectory
   iffilereadable("cscope.out")
      cs add $PWD/cscope.out
   " else add database pointed to byenvironment
   elseif $CSCOPE_DB !=""
      cs add $CSCOPE_DB
   endif
   set csverb
endif

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endif

filetype plugin on

if &term=="xterm"
     set t_Co=8
     set t_Sb=[4%dm
     set t_Sf=[3%dm
endif

" Don't wake up system with blinking cursor:
" http://www.linuxpowertop.org/known.php
let &guicursor = &guicursor . ",a:blinkon0"
set nu
set mouse=a
10.
用户与用户组操作
-
创建用户组phone,指定gid888,下面新建用户均属于phone用户组;
-
创建用户mi,设置uid=1800,shell类型为/bin/sh;
-
创建用户iphone,设置uid=1801,用户描述为“User iphone“;
-
创建用户huawei,设置用户描述为华为”,用户家目录为/huawei;
**
因业务需要,执行以下操作:
-
修改用户miuid1700,shell另外类型为/sbin/nologin;
-
修改用户iphone的用户描述为苹果手机”;
-
修改用户huawei的用户家目录为/home/huawei;
[root@localhost ~]# groupadd -g 888 phone
[root@localhost ~]# useradd -u 1800 mi
[root@localhost ~]# usermod -s /bin/sh mi
[root@localhost ~]# usermod -aG phone mi
[root@localhost ~]# useradd -u 1801 iphone
[root@localhost ~]# usermod -c User iphone iphone
[root@localhost ~]# usermod -aG phone iphone
[root@localhost ~]# useradd -c
华为 huawei
[root@localhost ~]# usermod -d /huawei huawei
[root@localhost ~]# usermod -aG phone huawei
[root@localhost ~]# usermod -s /sbin/nologin mi
[root@localhost ~]# usermod -u 1700 mi
[root@localhost ~]# usermod -c
苹果手机 iphone
[root@localhost ~]# usermod -d /home/huawei huawei
11.
(密码管理)某管理员建立一用来管理帐号的用户admin,满足以下条件
    -uid=7777,gid=7777,
用户描述为系统管理员"
    -
新建用户组bank1,bank2,使新建的用户为admin用户的附加组;
    -
设置admin用户的密码为”adminpasswd“
    -
修改密码使用天数为0,使该用户首次登陆必须改密码;
    -
修改密码最短有效期为7,使该用户设置密码等待7天后才可以再次更改;
    -
admin用户下方权限,使得该用户可以新建用户(无密码方式)。
[root@localhost ~]# useradd -u 7777 admin
[root@localhost ~]# usermod -c
系统管理员 admin
[root@localhost ~]# groupadd bank1
[root@localhost ~]# groupadd bank2
[root@localhost ~]# usermod -aG bank1 admin
[root@localhost ~]# usermod -aG bank2 admin
[root@localhost ~]# echo adminpasswd | passwd --stdin admin
Changing password for user admin.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# chage -d 0 admin
[root@localhost ~]# passwd -n 7 admin
[root@localhost ~]# vim /etc/sudoers
其中编辑##Allow user admin to create user
admin localhost=(root) NOPASSWD: /usr/sbin/useradd
[root@localhost ~]# su - admin
Last login: Tue Apr  4 05:38:56 EDT 2017on pts/0
[admin@localhost ~]$ sudo /usr/sbin/useradd linux
12.
创建一公共目录/pubdir,使得所有用户均可以向该目录写入内容,但是只能删除属于自己的文件或者目录。
[root@localhost ~]# mkdir /pubdir
[root@localhost ~]# chmod 1777 /pubdir/
13.
显示cpu使用量前五的pid,并重定向到文件/mnt/pidfile中;
[root@localhost ~]# ps ax -o pid --sort -%cpu | grep PID -v | head -n 5>/mnt/pidfile
14.
显示试图登陆你主机但没有成功登录的用户,保存到/mnt/login_fail.text文件中;
[root@localhost ~]# lastb
root     ssh:notty    172.25.254.61    Tue Apr 4 04:43 - 04:43  (00:00)   
root     :0           :0               Mon Apr  3 04:39 - 04:39  (00:00)   

btmp begins Mon Apr  3 04:39:092017
[root@localhost ~]# lastb >/mnt/login_fail.text
[root@localhost ~]# cat/mnt/login_fail.text
-bash: cat/mnt/login_fail.text: No such file or directory
[root@localhost ~]# cat /mnt/login_fail.text
root     ssh:notty    172.25.254.61    Tue Apr 4 04:43 - 04:43  (00:00)   
root     :0           :0               Mon Apr  3 04:39 - 04:39  (00:00)   
15.
设置ssh服务器端,不允许通过密码认证进行远程连接
[root@localhost ~]# vim /etc/ssh/sshd_config
PasswordAuthentication yes
改为PasswordAuthenticationno
[root@localhost ~]# systemctl restart sshd.serivice
16.
打包压缩/mnt下的文件为tar.gz格式,实现无密码(即通过密钥认证)发送压缩包到真机kiosk用户的桌面;
[root@localhost mnt]#  tar zcf mnt.tar.gz/mnt
[root@localhost mnt]# ls
group  login_fail.text  mnt.tar.gz pidfile
[root@localhost mnt]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e5:02:87:87:c1:98:ba:39:09:e9:fa:3a:28:cc:c6:c8 root@localhost
The key's randomart image is:
+--[ RSA 2048]----+
|     +.          |
|    o .+         |
| . .  + o .      |
|o .    + o       |
|.. +    S .      |
| .=      .       |
|O  .             |
|*E               |
|++.              |
+-----------------+
[root@localhost /]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.163
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filterout any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you areprompted now it is to install the new keys
root@172.25.254.163's password:

Number of key(s) added: 1

Now try logging into the machine, with:  "ssh 'root@172.25.254.163'"
and check to make sure that only the key(s) you wanted were added.

[root@localhost ~]# scp /root/.ssh/id_rsa root@172.25.254.61:/root/.ssh/
root@172.25.254.61's password:
id_rsa                                 100% 1675     1.6KB/s   00:00   
[root@localhost ~]# exit
logout
Connection to 172.25.254.163 closed.
[root@foundation61 Desktop]# ssh root@172.25.254.163
Last login: Tue Apr  4 08:20:07 2017 from172.25.254.61
[root@localhost ~]#
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# scp /mnt/mnt.tar.gzkiosk@172.25.254.61:/home/kiosk/Desktop
kiosk@172.25.254.61's password:
Permission denied, please try again.
kiosk@172.25.254.61's password:
mnt.tar.gz                             100% 3671     3.6KB/s   00:00   
17.
实现你的主机与172.25.254.250主机实现同步
1)服务端
[root@foundation250 Desktop] # vim /etc/chrony.conf
# Allow NTP client access from local network.
allow 172.25.254.61/24
# Listen for commands only on localhost.
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
# Serve time even if not synchronized to any NTP server.
local stratum 10         
2)客户端
[root@foundation61 Desktop] # vim /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 172.25.254.250 iburst     
设置后重启
3)测试
[root@foundation61 Desktop]# chronyc sources -v
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = localclock.
 / .- Source state '*' = current synced,'+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time maybe in error, '~' = time too variable.
||                                                .- xxxx [ yyyy ] +/- zzzz
||                                               /   xxxx = adjusted offset,
||         Log2(Polling interval) -.             |    yyyy = measured offset,
||                                 \            |    zzzz = estimated error.
||                                  |           |                        
MS Name/IP address         Stratum PollReach LastRx Last sample
===============================================================================
^* 172.25.254.61                  10   6  377    41   +170us[ +201us] +/-  191us
18.
设置你主机的时区为africa/conakry
[root@localhost mnt]# timedatectl set-timezone Africa/Conakry
[root@localhost mnt]# timedatectl status
      Local time: Tue 2017-04-04 12:52:16GMT
  Universal time: Tue 2017-04-04 12:52:16UTC
        RTC time: Tue 2017-04-0412:52:16
        Timezone: Africa/Conakry (GMT,+0000)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
19.
将你主机上的所有日至信息同步到真机上;
[root@localhost ~]# vim /etc/rsyslog.conf
修改*.*            @172.25.254.61 
[root@localhost ~]# systemctl stop firewalld.serivice
[root@localhost ~]# systemctl restart rsyslog.serivice
[root@localhost ~]# >/var/log/messages
[root@foundation61 Desktop]#  vim/etc/rsyslog.conf
取消“#”
 $ModLoad imudp
 $UDPServerRun 514
[root@foundation61 Desktop]# systemctl stop firewalld.serivice
[root@foundation61 Desktop]# systemctl restart rsyslog.serivice    
[root@foundation61 Desktop]# >/var/log/messages
[root@localhost ~]# logger test message        
[root@foundation61 Desktop]# tail -f /var/log/messages
20.
通过nmcli命令设置你真机ip172.25.254.161,网关为172.25.254.250
 [root@localhost ~]#  nmcli connection add type ethernet con-namewestos ifname eth0 ip4 172.25.254.161/24 gw4 172.25.254.250
  [root@localhost ~]# ifconfig
  [root@localhost ~]# systemctl stopNetwrokManager
  [root@localhost ~]# systemctl restartnetwork
  [root@localhost ~]# route -n
21.
通过管理配置文件设置你主机dhcp获取ip
[root@localhost ~]# mkdir /iso
[root@localhost ~]# mkdir /rhel7.2
[root@localhost ~]# scp root@172.25.254.61:/home/kiosk/Desktop/
脚本和镜像/rhel-server-7.2-x86_64-dvd.iso /iso
root@172.25.254.61's password:
rhel-server-7.2-x86_64-dvd.iso               100% 3856MB  26.6MB/s   02:25  
[root@localhost ~]# mount /dev/cdrom /rhel7.2/
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# vim /etc/yum.repos.d/yum.repo
[root@localhost dhcp]# cat /etc/yum.repos.d/yum.repo
[WESTOS]
name=rhel7.2
baseurl=file:///rhel7.2
gpgcheck=0
[root@localhost ~]# yum clean all
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can usesubscription-manager to register.
Cleaning repos: WESTOS
Cleaning up everything
[root@localhost ~]# systemctl install httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# mkdir /var/www/html/rhel7.2
[root@localhost ~]# umount /rhel7.2
[root@localhost ~]# mount /iso/rhel-server-7.2-x86_64-dvd.iso/var/www/html/rhel7.2/
mount: /dev/loop0 is write-protected, mounting read-only
[root@localhost ~]# vim /etc/rc.d/rc.local
[root@localhost dhcp]# cat /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
mount /iso/rhel-server-7.2-x86_64-dvd.iso /var/www/html/rhel7.2
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/yum.repos.d/yum.repo
[root@localhost dhcp]#  cat/etc/yum.repos.d/yum.repo
[WESTOS]
name=rhel7.2
baseurl=file:///var/www/html/rhel7.2
gpgcheck=0
 
[root@localhost ~]# yum search dhcp
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can usesubscription-manager to register.
============================== N/S matched: dhcp===============================
dhcp-common.x86_64 : Common files used by ISC dhcp client and server
dhcp-libs.i686 : Shared libraries used by ISC dhcp client and server
dhcp-libs.x86_64 : Shared libraries used by ISC dhcp client and server
dhclient.x86_64 : Provides the ISC DHCP client daemon and dhclient-script
dhcp.x86_64 : Dynamic host configuration protocol software
dnsmasq.x86_64 : A lightweight DHCP/caching DNS server

  Name and summary matches only, use"search all" for everything.
[root@localhost dhcp]# yum install dhcp
[root@localhost dhcp]# vim dhcpd.conf
[root@localhost dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example/etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@localhost dhcp]# vim dhcpd.conf
[root@localhost dhcp]# cat dhcpd.conf
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# option definitions common to all supported networks...
option domain-name "example.com";
option domain-name-servers 172.25.254.254

default-lease-time 600;
max-lease-time 7200;

# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

}

# This is a very basic subnet declaration.

subnet 172.25.254.0 netmask 255.255.255.0 {
  range 172.25.254.120172.25.254.150;
  option routers 172.25.254.111
}
[root@localhost dhcp]# systemctl start dhcpd
在测试端设置获取ip获取方式为自动获取。
[root@localhost
]# systemctl restart network
[root@localhost
]# ifconfig
22.
搭建本地yum仓库,可用yum安装lftpvsftpd软件,安装后卸载vstftpd软件
[root@localhost ~]# mkdir /iso
[root@localhost ~]# mkdir /rhel7.2
[root@localhost ~]# scp root@172.25.254.61:/home/kiosk/Desktop/
脚本和镜像/rhel-server-7.2-x86_64-dvd.iso /iso
root@172.25.254.61's password:
rhel-server-7.2-x86_64-dvd.iso               100% 3856MB  26.6MB/s   02:25  
[root@localhost ~]# mount /dev/cdrom /rhel7.2/
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# vim /etc/yum.repos.d/yum.repo
[root@localhost dhcp]# cat /etc/yum.repos.d/yum.repo
[WESTOS]
name=rhel7.2
baseurl=file:///rhel7.2
gpgcheck=0
[root@localhost ~]# yum clean all
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can usesubscription-manager to register.
Cleaning repos: WESTOS
Cleaning up everything
[root@localhost ~]# yum install lftp -y
[root@localhost ~]# yum install vsftpd -y
[root@localhost ~]# yum -y remove vsftpd

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值