Linux OS 学习笔记(1)


1. root


1)由普通用户进入root

首先,要允许 su 到 root,在当前用户(系统安装时建立的用户及密码)终端输入:sudo passwd

me@tipfoo:~$ sudo passwd 
 
Password: <--- 输入安装时那个用户的密码 (输入时屏幕不会显示密码)
 
Enter new UNIX password: <--- 新的Root用户密码 
 
Retype new UNIX password: <--- 重复新的Root用户密码 
 
passwd:已成功更新密码
 
其次,要切换root,使用su命令

2)退出root权限:
终端输入:exit
  终端输入:su - username

3)关闭root登录

修改如下文件:

$vim /etc/sudoers/

赋予某个用户root权限。如:用户sysadmin。确保在编辑上述文件时使用的用户是系统已有的用户。找到下面这行:

root ALL=(ALL) ALL

增加一行:

root ALL=(ALL) ALL
sysadmin ALL=(ALL) ALL

关闭通过SSH直接访问root,需要再次打开sshd_config,找到下面这行:

#PermitRootLogin yes

更改为:

PermitRootLogin no

然后保存文件,重启sshd守护进程使改动生效:

sudo /etc/init.d/sshd restart

 


 
2. linux 里设置环境变量的方法

  一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。“/bin”、“/sbin”、“ /usr/bin”、“/usr/sbin”、“/usr/local/bin”等路径已经在系统环境变量中了,如果可执行文件在这几个标准位置,在终端命令行输入该软件可执行文件的文件名和参数(如果需要参数),回车即可。 

 1)export命令:
#export $NODE_PATH=/opt/node-v7.8.0-linux-x86/lib/node_modules

可用命令export查看是否设置成功:

...

declare -x PATH="/opt/node-v7.8.0-linux-x86/lib/node_modules"

export的效力仅及于该次登陆操作。

  命令 export $PATH="路径”(或“PATH=$PATH:路径”) ($PATH为环境变量名,如DVSDK;调用时用$DVSDK)可以把这个路径加入环境变量,但是退出这个命令行就失效了。要想永久生效,需要把这行添加到环境变量文件里。有两个文件可选:“/etc/profile”和用户主目录下的“.bash_profile”,“/etc/profile”对系统里所有用户都有效,用户主目录下的“.bash_profile”只对这个用户有效。与DOS/Window不同,UNIX类系统环境变量中路径名用冒号分隔,不是分号。

2)修改profile文件:
#vi /etc/profile
在里面加入:export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

3) 修改.bashrc文件:
# vi /root/.bashrc
在里面加入:export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

后两种方法一般需要重新注销系统才能生效,最后可以通过echo命令测试一下:
# echo $PATH


3. Linux下源码的安装 


Linux下源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install).

1)configure

Configure 是一个脚本,可通过命令查看具体信息:

./configure -help
--prefix=PREFIX      install architecture-independent files in PREFIX
                [/usr/local]
--exec-prefix=EPREFIX  install architecture-dependent files in EPREFIX
                [same as prefix]

其他的参数不管,重点关注上述--prefix参数。使用这个参数可将软件安装到--prefix参数后指定的路径中,方便管理和移植.

 

2)编译

make

3)安装

make install

以上操作都是在源文件目录里进行.

 


4. echo命令


看了别人的介绍已经十分详细,传送门如下:

1)echo基础输出:http://www.zsythink.net/archives/96http://www.cnblogs.com/ZhangShuo/articles/1829589.html

2)echo输出带格式字符:http://www.zsythink.net/archives/111


5. ssh_config和sshd_config配置文件


   SSH(Secure Shell)是专为远程登录会话和其他网络服务提供安全性的协议。现在远程管理linux系统基本上都要使用到ssh,原因很简单:telnet、FTP等传输方式是‍以明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。ssh_config和sshd_config都是ssh服务器的配置文件,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。

1)ssh_config文件参数

# Site-wide defaults for various options
带“#”表示该句为注释不起作,该句不属于配置文件原文,意在说明下面选项均为系统初始默认的选项。说明一下,实际配置文件中也有很多选项前面加有“#”注释,虽然表示不起作用,其实是说明此为系统默认的初始化设置。
Host *
"Host"只对匹配后面字串的计算机有效,“*”表示所有的计算机。从该项格式前置一些可以看出,这是一个类似于全局的选项,表示下面缩进的选项都适用于该设置,可以指定某计算机替换*号使下面选项只针对该算机器生效。
ForwardAgent no
"ForwardAgent"设置连接是否经过验证代理(如果存在)转发给远程计算机。
ForwardX11 no
"ForwardX11"设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。
RhostsAuthentication no
"RhostsAuthentication"设置是否使用基于rhosts的安全验证。
RhostsRSAAuthentication no
"RhostsRSAAuthentication"设置是否使用用RSA算法的基于rhosts的安全验证。
RSAAuthentication yes
"RSAAuthentication"设置是否使用RSA算法进行安全验证。
PasswordAuthentication yes
"PasswordAuthentication"设置是否使用口令验证。
FallBackToRsh no
"FallBackToRsh"设置如果用ssh连接出现错误是否自动使用rsh,由于rsh并不安全,所以此选项应当设置为"no"。
UseRsh no
"UseRsh"设置是否在这台计算机上使用"rlogin/rsh",原因同上,设为"no"。
BatchMode no
"BatchMode":批处理模式,一般设为"no";如果设为"yes",交互式输入口令的提示将被禁止,这个选项对脚本文件和批处理任务十分有用。
CheckHostIP yes
"CheckHostIP"设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为"yes"。
StrictHostKeyChecking no
"StrictHostKeyChecking"如果设为"yes",ssh将不会自动把计算机的密匙加入"$HOME/.ssh/known_hosts"文件,且一旦计算机的密匙发生了变化,就拒绝连接。
IdentityFile ~/.ssh/identity
"IdentityFile"设置读取用户的RSA安全验证标识。
Port 22
"Port"设置连接到远程主机的端口,ssh默认端口为22。
Cipher blowfish
“Cipher”设置加密用的密钥,blowfish可以自己随意设置。
EscapeChar ~
“EscapeChar”设置escape字符。

2)sshd_config文件参数

Port 22
"Port"设置sshd监听的端口号。
ListenAddress 192.168.1.1
"ListenAddress”设置sshd服务器绑定的IP地址。
HostKey /etc/ssh/ssh_host_key
"HostKey”设置包含计算机私人密匙的文件。
ServerKeyBits 1024
"ServerKeyBits”定义服务器密匙的位数。
LoginGraceTime 600
"LoginGraceTime”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。
KeyRegenerationInterval 3600
"KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。
PermitRootLogin no
"PermitRootLogin”设置是否允许root通过ssh登录。这个选项从安全角度来讲应设成"no"。
IgnoreRhosts yes
"IgnoreRhosts”设置验证的时候是否使用“rhosts”和“shosts”文件。
IgnoreUserKnownHosts yes
"IgnoreUserKnownHosts”设置ssh daemon是否在进行RhostsRSAAuthentication安全验证的时候忽略用户的"$HOME/.ssh/known_hosts”
StrictModes yes
"StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。
X11Forwarding no
"X11Forwarding”设置是否允许X11转发。
PrintMotd yes
"PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。
SyslogFacility AUTH
"SyslogFacility”设置在记录来自sshd的消息的时候,是否给出“facility code”。
LogLevel INFO
"LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。
RhostsAuthentication no
"RhostsAuthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够了。
RhostsRSAAuthentication no
"RhostsRSA”设置是否允许用rhosts或“/etc/hosts.equiv”加上RSA进行安全验证。
RSAAuthentication yes
"RSAAuthentication”设置是否允许只有RSA安全验证。
PasswordAuthentication yes
"PasswordAuthentication”设置是否允许口令验证。
PermitEmptyPasswords no
"PermitEmptyPasswords”设置是否允许用口令为空的帐号登录。
AllowUsers admin
"AllowUsers”的后面可以跟任意的数量的用户名的匹配串,这些字符串用空格隔开。主机名可以是域名或IP地址。

6. /etc/fstab


      当Linux系统下划分了新的分区后,需要将这些分区设置为开机自动挂载,否则,Linux是无法使用新建的分区的。 /etc/fstab 文件负责配置Linux开机时自动挂载的分区。

该文件包含六个域:

# <file system> <mount point> <type> <options> <dump> <pass>
proc                  /proc                  proc defaults 0 0
/dev/hda1         / ext3               errors=remount-ro 0 1
/swapfile           swap                swap defaults 0 0
/dev/hdc           /media              /cdrom0 udf,iso9660 user,noauto 0 0

1)设备名称(file system )

这里用来指定你要挂载的文件系统的设备名称或块信息,也可以是远程的文件系统。可以是实际分区名,也可以是实际分区的卷标(Lable)。如果磁盘是SATA接口,且有多个磁盘,则每个磁盘被标记为 /dev/hda 、 /dev/hdb、 /dev/hdc 等以此类推;而每个磁盘的分区被标记为 /dev/hda1、 /dev/hda2等。如果磁盘是SCSI类型,则多个磁盘会被分别标记为 /dev/sda、/dev/sdb等等。分区同理。如果使用标签来表示,则格式如:1  LABLE=/

2)默认挂载点

创建挂载点方法如下:
    # mkdir /mnt/hda1     创建挂载/dev/hda1分区的目录;
    # chmod 777 /mnt/hda1   打开权限,所有用户可读可写可执行;

执行完了以上两步就可以在/etc/fstab里使用这个挂载点了。

3)文件系统类形。如果想了解你的kernel目前支持哪些文件系统,可以查看/proc/filesystems的内容。

Linux file systems: ext2, ext3, jfs, reiserfs, reiser4, xfs, swap.
Windows:
vfat = FAT 32, FAT 16
ntfs= NTFS
Note: For NTFS rw ntfs-3g
CD/DVD/iso: iso9660
Network file systems:
nfs: server:/shared_directory /mnt/nfs nfs <options> 0 0
smb: //win_box/shared_folder /mnt/samba smbfs rw,credentials=/home/user_name/winbox-credentials.txt 0 0
auto: The file system type (ext3, iso9660, etc) it detected automatically. Usually works. Used for removable devices
(CD/DVD, Floppy drives, or USB/Flash drives) as the file system may vary on thesedevices.

4)挂载选项

fstab中的第四列表示设备或者分区所需要的挂载选项。这一列也是fstab中最复杂最容易出错的一列,如果你想知道更多的东西,求助于man。

auto 和 noauto:这是控制设备是否自动挂载的选项。auto是默认选择的选项,这样,设备会在启动或者你使用mount -a命令时按照fstab的内容自动挂载。如果你不希望这样,就使用noauto选项,如果这样的话,你就只能明确地通过手工来挂载设备。

user 和 nouser:这是一个非常有用的选项,user选项允许普通用户也能挂载设备,而nouser则只允许root用户挂载。nouser是默认选项,这也是让很多 Linux新手头疼的东西,因为他们发现没有办法正常挂载光驱,Windows分区等。如果你作为普通身份用户遇到类似问题,或者别的其他问题,就请把 user属性增加到fstab中。

exec 和 noexec: exec允许你执行对应分区中的可执行二进制程序,同理,noexec的作用刚好相反。如果你拥有一个分区,分区上有一些可执行程序,而恰好你又不愿意,或者不能在你的系统中执行他们,就可以使用noexec属性。这种情况多发生于挂载Windows分区时。exec是默认选项,理由很简单,如果 noexec变成了你/根分区的默认选项的话……

ro: 以只读来挂载文件系统。

rw: 以可读可写的属性来挂载系统。

sync 和 async:对于该文件系统的输入输出应该以什么方式完成。sync的意思就是同步完成,通俗点讲,就是当你拷贝一个东西到设备或者分区中时,所有的写入变化将在你输入cp命令后立即生效,这个东西应该立马就开始往设备或者分区里面拷贝了。而如果是async,也就是输入输出异步完成的话,当你拷贝一个东西到设备或者分区中时,可能在你敲击cp命令后很久,实际的写入操作才会执行,换句话说,就是进行了缓冲处理。

有时候这种机制蛮不错的,因为sync会影响你系统的运行速度,但是这也会带来一些问题。想一想,当你希望将一个文件拷贝到u盘上时,你执行了 cp 命令,却忘记执行umount命令(它会强行将缓冲区内容写入),那么你拷贝的文件实际上并没有在u盘上面。如果你是使用的mv命令,而你又很快将u盘拔出……恭喜你,文件会从这个星球上消失的。因此,虽然async是默认属性,但是对于u盘,移动硬盘这种可移动存储设备,最好还是让他们使用sync选项。

defaults: 所有选项全部使用默认配置,包括rw, suid, dev, exec, auto, nouser, 和 async。

一般用户没有特殊需求,直接使用defaults就可以了。看完介绍,我们再回过头去看看前面的示例内容,以光驱为例,主要关注挂载选项这里,可以看到,光驱和其他分区设备的不同是ro,因为普通光驱是只读的。而exec则让你可以从光驱上直接执行某些程序。

5)dump:能否被dump备份命令作用:dump是一个用来作为备份的命令。

通常这个参数的值为0或者1。0:代表不要做dump备份;1:代表要每天进行dump的操作;2:代表不定日期的进行dump操作

6)fsck选项,告诉fsck程序以什么顺序检查文件系统,为0就表示不检查,(/)分区永远都是1,其它的分区只能从2开始,当数字相同就同时检查(但不能有两1),

 注意:当你修改了/etc/fstab后,一定要重新引导系统才会有效。

参考:http://lspgyy.blog.51cto.com/5264172/1297432;http://diamonder.blog.51cto.com/159220/282542;http://www.cnblogs.com/qiyebao/p/4484047.html

 

posted @ 2017-04-19 19:59  维鹏_wrx  阅读(474)  评论(0编辑  收藏  举报