烂笔头

1. 安装sl命令,实现“跑火车”效果

“sl”为linux系统中有趣但不实用的命令之一,在终端执行sl命令即可出现“跑火车”。

烂笔头_第1张图片
sl跑火车.jpg

2. 提示yum lock解决办法

yum操作时提示“Another app is currently holding the yum lock; waiting for it to exit...”的解决办法: rm -rf /var/run/yum.pid

3. 安装VMware tools

3.1 root登陆系统后,打开终端查看mount:

/dev/sr0 on /run/media/root/RHEL-7.0 Server.x86_64 type iso9660 (ro,nosuid,nodev
[root@localhost Desktop]# umount /dev/sr0 # 卸载

3.2 依次打开以下菜单:虚拟机 -> 全新安装VMware Tools(T)...,这时桌面上应该就有弹出如下图标:

烂笔头_第2张图片
WMware Tools.png

3.3 cd进入/run/media/root/VMware Tools目录

[root@localhost VMware Tools]# cp VMwareTools-10.1.15-6627299.tar.gz /root/Desktop/
[root@localhost VMware Tools]# cd /root/Desktop/
[root@localhost Desktop]# tar -zxvf VMwareTools-10.1.15-6627299.tar.gz
[root@localhost vmware-tools-distrib]# ./vmware-install.pl
安装过程中,一路yes向下执行即可。

4. yum源

4.1 yum本地源配置

[mycms5@localhost Desktop]$ yum repolist
Loaded plugins: langpacks, product-id, subscription-manager
repolist: 0
[mycms5@localhost Desktop]$ 
  • 4.1.1 依次单击:虚拟机 - 可移动设备 - CD/DVD(SATA),设置连接本地镜像。
[mycms5@localhost Desktop]$ df 
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       20469760 3465656  17004104  17% /
devtmpfs         1009356       0   1009356   0% /dev
tmpfs            1017824     128   1017696   1% /dev/shm
tmpfs            1017824    9120   1008704   1% /run
tmpfs            1017824       0   1017824   0% /sys/fs/cgroup
/dev/sda1         201388  102744     98644  52% /boot
/dev/sr0         3654720 3654720         0 100% /run/media/mycms5/RHEL-7.0 Server.x86_64
  • 4.1.2. 挂载,创建repo文件
[mycms5@localhost mnt]$ sudo mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[mycms5@localhost mnt]$ df 
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       20469760 3465644  17004116  17% /
devtmpfs         1009356       0   1009356   0% /dev
tmpfs            1017824     184   1017640   1% /dev/shm
tmpfs            1017824    9080   1008744   1% /run
tmpfs            1017824       0   1017824   0% /sys/fs/cgroup
/dev/sda1         201388  102744     98644  52% /boot
/dev/sr0         3654720 3654720         0 100% /mnt
[mycms5@localhost Desktop]$ sudo vi /etc/yum.repos.d/cdrom.repo

vi创建文件cdrom.repo内容为:

[cdrom]
name = cdrom
baseurl = file:///mnt
gpgcheck=0
enable=1

执行下面两行即可:
yum clean all
yum makecache

4.2 搭建远程yum源

yum install -y vsftpd # 安装vsftpd
systemctl start vsftpd # 启动
systemctl enable vsftpd # 设置开机自启动

挂载镜像光盘文件,把Package里的文件复制到ftp目录

cp /mnt/cdrom/Package/* /var/ftp

yum install createrepo
createrepo /var/ftp

[root@localhost ftp]# createrepo /var/ftp
Spawning worker 0 with 931 pkgs
Spawning worker 1 with 931 pkgs
Spawning worker 2 with 931 pkgs
Spawning worker 3 with 930 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

接下来,我们就可以在同网络上的其他机器,使用整个远程的yum源了。

[root@localhost ftp]#  yum-config-manager  --add-repo=ftp://192.168.9.3
Loaded plugins: fastestmirror
adding repo from: ftp://192.168.9.3

[192.168.9.3]
name=added from: ftp://192.168.9.3
baseurl=ftp://192.168.9.3
enabled=1

[root@localhost ftp]# echo gpgcheck=0 >> /etc/yum.repos.d/192.168.9.3.repo

5. 图形界面与命令行的切换

按Ctrl+Alt+Fn(2,3,4,5,6)进入命令行,按Ctrl+Alt+F1回到图形界面。从Linux的命令界面切换到图形界面可以按Alt+F7,也可以输入命令startx进入图形界面。

6. yum 只下载软件包不安装的方法

yum install * # yum默认安装软件包存在/var/cache/yum/目录下

6.1 yum自带工具yumdownloader

[root@localhost Desktop]# yum install yum-utils*
[root@localhost Desktop]# yumdownloader sl
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * epel: mirror.nes.co.id
 * extras: mirrors.163.com
 * updates: mirrors.163.com
sl-5.02-1.el7.x86_64.rpm       FAILED                                          
http://mirror.nes.co.id/epel/7/x86_64/s/sl-5.02-1.el7.x86_64.rpm: [Errno 14] curl#7 - "Failed to connect to mirror.nes.co.id port 80: Connection timed out"
Trying other mirror.
sl-5.02-1.el7.x86_64.rpm                                                  |  14 kB  00:00:00     

[root@localhost Desktop]# find / -name sl-5.02-1.el7.x86_64.rpm
find: ‘/run/user/1000/gvfs’: Permission denied
/root/Desktop/sl-5.02-1.el7.x86_64.rpm

7. user用户相关信息

7.1 查看用户密码相关信息:

[root@localhost ~]# chage -l mycms5
Last password change                    : Oct 16, 2017  # 最后修改时间
Password expires                            : never  # 密码永不过期
Password inactive                           : never #
Account expires                     : never
Minimum number of days between password change      : 0
Maximum number of days between password change      : 99999
Number of days of warning before password expires   : 7 #过期前7天提醒
[root@localhost ~]# 

7.2 userdel命令

删除用户userdel -r mycms5 删除用户时完全删除家目录
删除用户userdel mycms5 删除用户时不删除家目录、邮件等用户配置文件

7.3 useradd命令

增加用户并指定组-g、-G的区别:

[root@localhost Desktop]# useradd -g caiwubu  kuaiji001
[root@localhost Desktop]# useradd -G caiwubu  kuaiji002
[root@localhost Desktop]# id kuaiji001
uid=1002(kuaiji001) gid=1001(caiwubu) groups=1001(caiwubu)
[root@localhost Desktop]# id kuaiji002
uid=1003(kuaiji002) gid=1003(kuaiji002) groups=1003(kuaiji002),1001(caiwubu)

[root@localhost Desktop]# useradd -d /mytesthome mytest #指定目录
[root@localhost Desktop]# useradd -s /sbin/nologin xiaoshou001 #禁止登陆
[root@localhost Desktop]# cat /etc/passwd
.....
mytest:x:1004:1004::/mytesthome:/bin/bash 
xiaoshou001:x:1005:1005::/home/xiaoshou001:/sbin/nologin

[root@localhost ~]# useradd -u 888888 boss  #指定用户id
[root@localhost ~]# id boss
uid=888888(boss) gid=1006(boss) groups=1006(boss)
[root@localhost ~]# useradd ppp
[root@localhost ~]# id ppp
uid=1006(ppp) gid=1007(ppp) groups=1007(ppp)

7.4 usermod命令

修改用户信息,参数含义可参考useradd:

[root@localhost ~]# useradd liying
[root@localhost ~]# id liying
uid=1007(liying) gid=1008(liying) groups=1008(liying)
[root@localhost ~]# usermod -G caiwubu liying
[root@localhost ~]# id liying
uid=1007(liying) gid=1008(liying) groups=1008(liying),1001(caiwubu)

7.5 其他用户命令

passwd mycms5 修改密码

8. chattr 和 lsattr

只有超级权限的用户才具有使用该命令的权限,这项指令可改变存放在ext2、ext3、ext4、xfs、ubifs、reiserfs、jfs等文件系统上的文件或目录属性。但是它并不适合所有的目录。

chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

参数:

  • :在原有参数设定基础上,追加参数。
  • :在原有参数设定基础上,移除参数。
    = :更新为指定参数设定。
    A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
    S:硬盘I/O同步选项,功能类似sync。
    a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
    c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
    d:即no dump,设定文件不能成为dump程序的备份目标。
    i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
    j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
    s:保密性地删除文件或目录,即硬盘空间被全部收回。
    u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
    各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

9. 文件访问控制列表ACL

ACL可以为某个文件单独设置该文件具体的某用户或者组的权限

getfacl 文件名 #获取文件的访问控制信息

seftacl 设置文件的acl
-m 修改文件的acl权限
-x 取消用户或组对文件的权限

语法:
setfacl -m u:用户名:权限 文件名 #设置某用户的访问权限
setfacl -m g:组 名:权限 文件名 #设置某个组的访问权限
setfacl -x u:用户名 文件名 #取消某用户的访问权限
setfacl -x g:组 名 文件名 #取消某个组的访问权限

[root@localhost Desktop]# cat bozhou 
China Bozhou Huatuo!
[root@localhost Desktop]# chown kuaiji:caiwubu bozhou
[root@localhost Desktop]# ls -l bozhou
-rw-r--r--. 1 kuaiji caiwubu 21 Oct 16 20:59 bozhou
[root@localhost Desktop]# useradd qiaocheng
[root@localhost Desktop]# id qiaocheng
uid=1010(qiaocheng) gid=1011(qiaocheng) groups=1011(qiaocheng)
[root@localhost Desktop]# setfacl -m u:qiaocheng:r bozhou
[root@localhost Desktop]# getfacl bozhou
# file: bozhou
# owner: kuaiji
# group: caiwubu
user::rw-
user:qiaocheng:r--
group::r--
mask::r--
other::r--

[root@localhost Desktop]# setfacl -x u:qiaocheng bozhou
[root@localhost Desktop]# getfacl bozhou
# file: bozhou
# owner: kuaiji
# group: caiwubu
user::rw-
group::r--
mask::r--
other::r--


[root@localhost Desktop]# mkdir caiwushi
[root@localhost Desktop]# touch caiwushi/zhangben{1..6}
[root@localhost Desktop]# ll caiwushi/
total 0
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben1
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben2
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben3
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben4
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben5
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben6
[root@localhost Desktop]# chmod o-r -R caiwushi/
[root@localhost Desktop]# ll caiwushi/
total 0
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben1
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben2
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben3
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben4
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben5
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben6

[root@localhost Desktop]# setfacl -m u:boss:r -R caiwushi/
[root@localhost Desktop]# getfacl caiwushi/zhangben1
# file: caiwushi/zhangben1
# owner: root
# group: root
user::rw-
user:boss:r--
group::r--
mask::r--
other::---


[root@localhost Desktop]# touch caiwushi/zhangbenok
[root@localhost Desktop]# getfacl caiwushi/zhangbenok
# file: caiwushi/zhangbenok
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@localhost Desktop]# setfacl -m d:u:boss:r -R caiwushi/  #d 目录
[root@localhost Desktop]# touch caiwushi/zhangbenok2
[root@localhost Desktop]# getfacl caiwushi/zhangbenok2
# file: caiwushi/zhangbenok2
# owner: root
# group: root
user::rw-
user:boss:r--
group::r-x          #effective:r--
mask::r--
other::---

10. yum-config-manager命令找不到

系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils来安装

11. 关于Public key for *.rpm is not installed 的解决方法

  • yum源搭建在rhel7虚机上,centos7虚机上也使用前者yum源,那么两台机子都需要执行下面的脚本:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

  • 若yum源搭建在centos7上,可参考下面:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

11. 终端提示符显示-bash-4.2# 而非root@主机名的解决办法

原因是/root下面的配置文件.bash_profile 和.bashrc丢失了:

cp /etc/skel/.bashrc /root/
cp /etc/skel/.bash_profile /root/

注销root,重新登录就可以恢复正常。

12. rhel7 启动模式

[root@my ~]# systemctl get-default # 查看启动模式
graphical.target

[root@my ~]# systemctl set-default 
anaconda.target            local-fs.target            runlevel4.target
basic.target               multi-user.target          runlevel5.target
bluetooth.target           network-online.target      runlevel6.target
cryptsetup.target          network.target             shutdown.target
ctrl-alt-del.target        nfs.target                 sigpwr.target
default.target             nss-lookup.target          sleep.target
emergency.target           nss-user-lookup.target     slices.target
final.target               paths.target               smartcard.target
getty.target               poweroff.target            sockets.target
graphical.target           printer.target             sound.target
halt.target                reboot.target              spice-vdagentd.target
hibernate.target           remote-fs-pre.target       suspend.target
hybrid-sleep.target        remote-fs.target           swap.target
initrd-fs.target           rescue.target              sysinit.target
initrd-root-fs.target      rpcbind.target             system-update.target
initrd-switch-root.target  runlevel0.target           timers.target
initrd.target              runlevel1.target           time-sync.target
kexec.target               runlevel2.target           umount.target
local-fs-pre.target        runlevel3.target   

[root@my ~]# systemctl set-default multi-user.target  # 设置字符界面启动模式
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target'

13. 查看SELinux状态以及关闭

SELinux有三种:Enforcing、Permissive 和 Disabled。Disabled 代表 SELinux 被禁用,Permissive 代表仅记录安全警告但不阻止 可疑行为,Enforcing 代表记录警告且阻止可疑行为

[root@my ~]# getenforce
Enforcing

[root@www ~]# setenforce [0|1]

选项与参数:
0 :转成 permissive 宽容模式;
1 :转成 Enforcing 强制模式

[root@my ~]# vi /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing  # 禁用SeLinux,修改这里为disabled后需要重启系统才能生效
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

14. 禁止root用户登陆

[root@my ~]# vi /etc/ssh/sshd_config

PermitRootLogin no   # 将yes修改为no

[root@my ~]# systemctl restart sshd

15. Rehl学习环境

systemctl stop/mask firewalld/iptables/ip6tables/ebtables
setenforce 0

16. You could try using --skip-broken to work around the problem

问题:

 Error: Package:  *****************************

                                 Requires: ******************************

                                 Removing:  xxxxxxxxxxx.x86_64   (@rpmforge)   ****** 
                                 Updated By:   *******-*****-***********    Not find                                             
                          You could try using --skip-broken to work around the problem
                          You could try running: rpm -Va --nofiles --nodigest

解决办法:yum remove xxxxx-xxxxx-xxxxxxx.x86_64 然后重新安装: yum install xxxxxx

17. 虚拟机命令行下挂载iso镜像文件

首先在虚拟机-可移动设备-CD/DVD里连接设备,设置已连接状态。
然后,在命令行界面做如下操作:
[root@localhost cdrom]# .ls -l /dev/cdrom |grep cd
lrwxrwxrwx. 1 root root 3 Oct 25 03:23 /dev/cdrom -> sr0
mkdir /mnt/cdrom #创建挂载目录
mount /dev/cdrom /mnt/cdrom #挂载

18. centos 7 删除 virbr0 虚拟网卡

  • 出现虚拟网卡是因为安装时启用了 libvirtd 服务后生成的
  • 关闭方法
virsh net-list
名称               状态     自动开始  持久
default              active    yes

virsh net-destroy default
virsh net-undefine default
systemctl restart libvirtd.service

19. rhel6 打开和关闭防火墙

    1. 临时关闭和开启
      关闭:service iptables stop 开启:service iptalbes start 查看状态:service iptables status(关闭状态的话会提示firewal is not running)
  • 2.非及时性生效,重启后永久性生效
    关闭:chkconfig iptbales off 开启:chkconfig iptables on 查看状态:chkconfig iptables --list
    在开启了防火墙时,做如下设置,开启相关端口,
    修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

你可能感兴趣的:(烂笔头)