进程 比如用fork函数数建立的子进程,一个是重量级进程,他有自己独立的.data 与.bss 堆 和 栈,只是共享了父进程的代码段而以。
vfork共享了父进程的一切。
而说到线程,LINUX的线程的概念,我个人理解,它本来主是个轻量级的进程,线程共享父线程绝大部分资源,只有独立的栈。
这么说来,进程和线程从实质上讲没有多大区别。在linux中线程只是一个轻量级的进程而以。
进程 比如用fork函数数建立的子进程,一个是重量级进程,他有自己独立的.data 与.bss 堆 和 栈,只是共享了父进程的代码段而以。
vfork共享了父进程的一切。
而说到线程,LINUX的线程的概念,我个人理解,它本来主是个轻量级的进程,线程共享父线程绝大部分资源,只有独立的栈。
这么说来,进程和线程从实质上讲没有多大区别。在linux中线程只是一个轻量级的进程而以。
ssh_config
# Host * (只对能够匹配后面字串的计算机有效。“*”表示所有的计算机)
# ForwardAgent no (设置连接是否经过验证代理(如果存在)转发给远程计算机)
# ForwardX11 no (设置X11连接是否被自动重定向到安全的通道和显示集)
# RhostsRSAAuthentication no (设置是否使用用RSA算法的基于rhosts的安全验证)
# RSAAuthentication yes (设置是否使用RSA算法进行安全验证)
# PasswordAuthentication yes (设置是否使用口令验证)
# HostbasedAuthentication no (若设置为yes,则尝试着进行rhosts身份验证。对于安全要求更高的系统,请将其设置为no(默认值))
# GSSAPIAuthentication no (ssh的会话直到DNS请求超时才会继续下去,建意no)
# GSSAPIDelegateCredentials no (ssh的会话直到DNS请求超时才会继续下去,建意no)
# BatchMode no (如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。
当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用)
# CheckHostIP yes (设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为“yes”)
# AddressFamily any (设置允许的地址)
# ConnectTimeout 0 (连接超时)
# StrictHostKeyChecking ask (如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$HOME/.ssh)
# IdentityFile ~/.ssh/identity (设置从哪个文件读取用户的RSA安全验证标识)
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# Port 22 (设置连接到远程主机的端口)
# Protocol 2,1 (设置协议版本,建意用2)
# Cipher 3des (设置加密用的密码)
# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
# EscapeChar ~ (设置escape字符)
# Tunnel no (隧道模式)
# TunnelDevice any:any
# PermitLocalCommand no
# VisualHostKey no
=======================================================
sshd_config
#Port 22 (设置sshd监听的端口号)
#AddressFamily any
#ListenAddress 0.0.0.0 (设置sshd服务器绑定的IP地址)
#ListenAddress ::Protocol 2 (设置协议版本)
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key (设置包含计算机私人密匙的文件)
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h (KeyRegenerationInterval 3600)
#ServerKeyBits 1024 (定义服务器密匙的位数)# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH (设置在记录来自sshd的消息的时候,是否给出“facility code”)
SyslogFacility AUTHPRIV
#LogLevel INFO (设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮
助页,已获取更多的信息)# Authentication:
#LoginGraceTime 2m (设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间)
#PermitRootLogin yes (设置root能不能用ssh登录。这个选项一定不要设成“yes”)
#StrictModes yes (设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所
有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限)
#MaxAuthTries 6 (限制登陆密码输错次数)
#MaxSessions 10#RSAAuthentication yes (设置是否允许用rhosts或“/etc/hosts.equiv”加上RSA进行安全验证)
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no (设置是否允许用rhosts或“/etc/hosts.equiv”加上RSA进行安全验证)
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no (设置ssh daemon是否在进行RhostsRSAAuthentication安全验证
的时候忽略用户的“$HOME/.ssh/known_hosts)
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes (设置验证的时候是否使用“rhosts”和“shosts”文件)# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes (设置是否允许口令验证)
#PermitEmptyPasswords no (设置是否允许用口令为空的帐号登录)
PasswordAuthentication yes# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no# GSSAPI options
#GSSAPIAuthentication no
GSSAPIAuthentication yes
#GSSAPICleanupCredentials yes
GSSAPICleanupCredentials yes# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM no
UsePAM yes# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no (设置是否允许X11转发)
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes (设置sshd是否在用户登录的时候显示“/etc/motd”中的信息)
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#ShowPatchLevel no
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10 (同时登录的用户的个数)
#PermitTunnel no
#ChrootDirectory none (ChrootDirectory /home/%u改变登陆者的目录)# no default banner path
#Banner none# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
查看一个rpm包的依赖
如果是本地的包,没有安装过的
rpm -qRp 包名
[root@mydisk ~]# rpm -qR /home/linux/tools/VMware-Workstation-6.5.2-156735.x86_64.rpm
package /home/linux/tools/VMware-Workstation-6.5.2-156735.x86_64.rpm is not installed
[root@mydisk ~]# rpm -qR /home/linux/tools/VMware-Workstation-6.5.3-185404.x86_64.bundle
package /home/linux/tools/VMware-Workstation-6.5.3-185404.x86_64.bundle is not installed
[root@mydisk ~]# rpm -qR /home/linux/tools/tftp-server-0.32-4.i386.rpm
package /home/linux/tools/tftp-server-0.32-4.i386.rpm is not installed
[root@mydisk ~]# rpm -qRp /home/linux/tools/tftp-server-0.32-4.i386.rpm
warning: /home/linux/tools/tftp-server-0.32-4.i386.rpm: Header V3 DSA signature: NOKEY, key ID db42a60e
/bin/sh
/bin/sh
config(tftp-server) = 0.32-4
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libnsl.so.1
libwrap.so.0
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
xinetd
如果是已安装过的用
rpm -qR 包名
[root@mydisk ~]# rpm -qR dhcp
/bin/sh
/bin/sh
/bin/sh
/bin/sh
chkconfig
chkconfig
config(dhcp) = 12:4.1.0p1-2.fc11
coreutils
initscripts
initscripts
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.4)
libcrypto.so.8
liblber-2.4.so.2
libldap-2.4.so.2
policycoreutils
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
linux 使用tar命令备份系统
参数说明:
-z进行压缩gzip格式
-j进行bzip2压缩
-c建立一个备份
-f指定设备文件
-v显示压缩过程
-p保留文件的权限
–exclude指定不备份的文件或文件夹
time tar -jcvf /home/mainf10.backup.bz2 –exclude /home –exclude /media –exclude /mydisk –exclude /tmp –exclude /mnt –exclude /proc –exclude /sys /
增量备份1:(u参数不支持压缩文件)
tar zcvf backup.tar.gz test
gunzip backup.tar.gz
tar uvf backup.tar test
gzip backup.tar
增量备份2:
1.首先创建完全备份:tar -zcvf -g ssj t1_full.tar.gz /var
待/var中的数据变化后
2.再做增量备份 : tar -zcvf -g ssj t1_1.tar.gz /var
3.还原
tar zxvf t1_full.tar.gz
tar zxvf t1_1.tar.gz
mdadm参数(区分大小写)
-C 建立raid的 : 如 -C /dev/md[n]
-n 硬盘的个数
-l raid的级别
-x 热备盘个数
-D 显示raid信息
-s 扫描配置 /etc/mdadm.conf 或 proc/mdstut
例:(raid0)
1. 先将硬盘分区fdisk分区,分成一个区
2. mkfs.ext3 将硬盘格式化
3. mdadm -C /dev/md0 -l0 -n2 /dev/sda1 /dev/sdb1
4. mdadm -D -s > /etc/mdadm.conf #生成配置
yum 里没有闭源的和没有版权的软件,比如mplayer
加入他们的源
rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
rpm -ivh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
加入了软件源后安装mplayer
yum install mplayer mplayer-gui mencoder
1
/etc/mplayer/mplayer.conf找到fontconfig=yes一行改成fontconfig=no
2
然后启动mplayer,它依然说一个无法将sun.ttf字体应用于当前的错误,解决这个问题的办法很简单,就是在mplayer的首先项的font里面找个随便什么字体给它就行。如果找不到字体,在windows下的Fonts中复制一个过来simfang.ttf这个就行
然后打开什么都能看,网上说放不了rmvb,是因为没有mencoder这个包。播放开始还是有个小错,不过不影响用,就先这样吧
两个方法
1./etc/sysctl.conf中将net.ipv4.ipforward设为1
2.在/etc/rc.d/rc.local中加入echo "1" > /proc/sys/net/ipv4/ip_forward
新版的NFS和以前不一样了
版本:
[root@mydisk ~]# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 1011 status
100024 1 tcp 1011 status
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 1012 nlockmgr
100021 3 udp 1012 nlockmgr
100021 4 udp 1012 nlockmgr
100021 1 tcp 1012 nlockmgr
100021 3 tcp 1012 nlockmgr
100021 4 tcp 1012 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100005 1 udp 1010 mountd
100005 1 tcp 1010 mountd
100005 2 udp 1010 mountd
100005 2 tcp 1010 mountd
100005 3 udp 1010 mountd
100005 3 tcp 1010 mountd
想设置防火墙,要先把端口固定下来(上边是固定后的端口)
编辑 vi /etc/services
加入
#mountd
mountd 1010/tcp
mountd 1010/udp
#status
status 1011/tcp
status 1011/udp
#nlockmgr
nlockmgr 1012/tcp
nlockmgr 1012/udp
但nlockmgr在这个文件中是固定不下来的,所以
vi /etc/sysconfig/nfs
把注解的#去掉 改成这样子
LOCKD_TCPPORT=1012
LOCKD_UDPPORT=1012
再rcpinfo -p看看,是不是和我上边的一样了。
如果端口固定下来了,下来来配防火墙
在iptables中的*filter中加入以下语句(/etc/sysconfig/iptables)
#============================nfs======================
-A INPUT -p tcp -s 192.168.1.0/24 -m multiport –dport 111,1011,875,1012,1010,2049 -j ACCEPT
-A INPUT -p udp -s 192.168.1.0/24 -m multiport –dport 111,1011,875,1012,1010,2049 -j ACCEPT
#=======================================================
然后重启iptables
/etc/init.d/iptables restart
看看能挂载不
1. SAMBA主要的进程
smbd:管理文件共享与打印机的共享
nmbd:管理群组的NetBIOS Name解析
用到137,138,139三个口
2. 安装所需文件
samba-document:相关默认配置文件
samba-common:smb.conf与testparm
samba-client:挂载samba文件格式所需要的指令,如smbmount等
3. 软件的结构
/etc/samba/smb.conf:配置文件
/etc/samba/lmhosts:NetBios Name与主机IP的对应,一般不用管
/etc/samba/smbpasswd:存放smb用户密码,佣有者为root,权限600
/etc/samba/smbusers:建立windows与unix管理员与访客账号不一致时的对应关系,需要由smb.conf里的username map设置开启
testparm:此命令用于给smb.conf 做语法检查
smbd,nmbd:主要的进程
smbstatus:列出smb服务器的状态
smbpasswd:建立smb服务器的密码文件的命令
smbclient:查看其它计算机的共享
smbmount:挂载smb共享出来的目录
nmblookup:类似于nslookup,但重点在于netbios name
smbtree:类似于网上邻居,能查到工作组与计算机名称的树状目录分布图。
/usr/share/doc/samba-<版本>:包含了samba的技术手册
4. 设置的主要步骤
(1)在smb.conf中设置,工作且,netbios主机名,密码使用状态等
(2)在smb.conf内设置好要分享出来的目录,装置以及可供使用的用户数据
(3)根据(2)设置,linux文件系统中建立好共享文件或装置的使用权限
(4)根据(2)设置通过smbpasswd建立用户的账号及密码
(5)启动smbd与nmbd
smb.conf的配置
[global]
workgroup:工作组名
netbios name:netbios名
server string:主要的说明,不重要
dispay charset:服务器上的显示编码,一般与unix charset相同
unix charset:一般在/etc/sysconfig/il8n中
dos charset:windows的编码,繁体中文一般为big5,叫cp950
log file:日志的位置
max log size:日志文件的大小,若超过通过rotate进行删除
security:包括的选项
user:使用samba自身的密码数据库
share:不用密码
Server与domain:使用外部主机的密码,还要有password Server=IP
encrypt passwords:yes代表密码要加密,
smb passwd file:密码放置的文件,通常是/etc/samba/smbpasswd
[分享名称]
comment:目录说明
path:实际文件系统的路径
read only:设置是否只读
public:是否让所有可以登陆的用户看到这个项目
writable:设置是否可以写入,与read only谁最后出现,谁为准
create mode与directory mode:与权限有关
valid users:指定能句时入到此资源的特定用户
%S:登陆者
%m:client的netbios主机名
%M:client的host name
%L:代表samba主机的netbios名
%H:代表用户的默认目录
%U:代表目前登陆的用户名称
%g:代表登陆的用户的群组名称
%h:代表目前这台samba主机的hostname
%I:代表client的IP
%T:代表目前的日期与时间。
例(没有密码的smb.conf)
1. 设置/etc/samba/lmhosts (可选)
192.168.1.250 test1
2. /etc/samba/smb.conf
[global]
#主机名相关
workgroup=workgroup
netbios name=test1
server string=hehe
#语言相关
unix charset=utf8
display charset=utf8
dos charset=cp950
#日志
log file=/var/log/samba/%m.log
max log size=50
#密码相关
security=share
#其他
socket options=TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy=no
template shell=/bin/false
winbind use default domain=no
然后用testparm检查一下正确性
testparm -v
启动:/etc/init.d/smb start
udp 137 138
tcp 139 445
smb ports=445 139
观察:smbclient -L [//主机][-U 账号]
==========================================
附加:(建立一个有密码保护的共享)
在上面例子的基础上
1. 将security = share 改为 user
2. encrypt passwords = yes
3. smb passwd file = /etc/samba/smbpasswd #(加强记忆,可不写)
4. valid users = %S 或 用户 或 @组名 #(%S,为每个用户自己的目录,可进入的用户,@为可进入的用户组)
5. create mode = 0644 与 directory mode = 0775 # (可选,加入umask)
6. 加入密码
用户必须是/etc/passwd里有的,但密码是存在/etc/samba/smbpasswd中
加入密码 smbpasswd 命令
-a 新增一个账号
-d 禁用一个账号
-e 解禁一个账号
-m 该username为机器代码,与domain model 有关
smbpasswd -a 用户名
然后输入两次密码,就好了
testparm -v 测试一下
如没错,就重启一下smb的进程
/etc/init.d/smb restart
OK了,进入共享试试
+++++++++++++++++++++++++++++++++++++++++++
iptables的设置
-A INPUT -p tcp -m multiport –dports 137,138,139,445 -j ACCEPT
-A INPUT -p udp -m multiport –dports 137,138,139,445 -j ACCEPT
出现过的错误
1. symbol lookup error: smbd: undefined symbol: _talloc_get_type_abort
解决:yum update libtalloc
出现的最二的错误
当samba升级到3.4.2-0.42,会报端口被占用,无法正常使用,所以不要从3.3.2升级到3.4.X不然都不知道自己是怎么死的
更改
/etc/yum.repos.d/下的
fedora.repo
fedora-updates.repo
两个文件中的两个段
[fedora]
name=Fedora $releasever – $basearch
failovermethod=priority
baseurl=http://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Everything/$basearch/os/
ftp://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Everything/$basearch/os/
ftp://ftp.cuhk.edu.hk/pub/Linux/fedora/releases/$releasever/Everything/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
[updates]
name=Fedora $releasever – $basearch – Updates
failovermethod=priority
baseurl=http://ftp.sjtu.edu.cn/fedora/linux/updates/$releasever/$basearch/
ftp://ftp.cuhk.edu.hk/pub/Linux/fedora/updates/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
只要是fedora就通用,包括fedora8,fedora9,fedora10,fedora11,fedora12