运行mfsmount的时候报错verson FUSE_2.8 not found (required by mfsmount)
编辑/etc/ld.so.conf文件,将/usr/local/lib加入。
运行ldconfig,更新缓存。
Archive
For the Ubuntu category
运行mfsmount时,fuse报错如下的解决办法verson FUSE_2.8 not found (required by mfsmount)
By mmxcqNo CommentsWhile re-installing Spotify on my Desktop I came across this error while trying to run the .exe through wine (shown above) and here’s a really simple way of fixing it:
1. Right click the .exe
2. Properties
3. Under the Permssions tab make sure “Allow executing file as program” is checked
4. Click Close and you should be able to now run it through wine..
这篇文章主要介绍下Ubuntu下如何使用aircrack-ng破解WEP加密的无线网络。
现 在无线网络越来越普及了,用的人越来越多,但是安全性却还是不够高。
Aircrack-ng是一个工具包,里面有很多工具,主要有以下几 个:
airmon-ng 用来调整网卡工作模式
airodump-ng 用来抓包
aircrack-ng 用来破解
我们首先用iwconfig看下系统的无线网卡,我这里是wlan0
接下来开 启网卡的监视模式
sudo airmon-ng start wlan0 6 这里的6指的是频道,一般都是6;
3、开始抓 包
sudo airodump-ng -w test –channel 6 mon0
等到某个 网络的数据包达到20000以上就可以开始破解了
新开一个命令行,输入sudo aircrack-ng -x -f 2 test-01.cap,然后选择包数量达到20000以上
如果出现 这个,说明包抓取量还是不够,放着继续抓包,等到包达到一定数量以后,就会再次尝试,直到破解出来
看,我成 功的破解出来了,密码就是1990080722
赶紧去连接吧。
三,设置启动项
1 、 下载最新版本的 Grub4DOS
下 载地址: http://download.gna.org/grub4dos/
下 载并解压缩后,将目录中的 grldr , grldr.mbr , grub.exe 三 个文件复制到 C 盘 根目录下
2 、 在下载好的 ubuntu 9.10 系 统 iso 文 件中 ( 下 载地址为: http://www.ubuntu.org.cn/getubuntu/downloadmirrors/#bt ) , casper 文 件夹目录下,找到 vmlinuz 、 initrd.lz (注 意: ubuntu9.04 文 件名为 initrd.gz ) 解压,并复制到 C 盘 根目录下(无需解压整个 casper 文 件夹,整个 casper 文 件夹很大)
3 、 C 盘 根目录下建立 menu.lst 文 件,内容为:
title Install Ubuntu 9.10
root (hd0,0)
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-9.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,0)/initrd.lz
4 、 复制xp 系统里的boot.ini 到C 盘根目录,在最后一行加上c:\grldr.mbr=”grub” (注意是grldr.mbr )
如果身边没有xp 系统 。可以新建一个boot.ini 。 内容如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Microsoft Windows XP Professional” /noexecute=optin /fastdetect
c:\grldr.mbr=”grub”
四, 硬盘安装 ubuntu 9.10
重启机器。在启动项选择 grub ,再选择 intall ubuntu 9.10. 进入 ubuntu9.10 的安装程序。注意在安装前打开终端,输入 sudo umount -l /isodevice 这一命令取消掉对光盘所在 驱动 器的挂载, 否则 分区界面 找不到分区。
注意:在磁盘空间选择的 步骤中,要选择手动指定分区。 创建一个主分区,磁盘分区选择为所保留的30-40G 的未分配空间,挂载点为/ 。
五, 修复 Windows 7 启动项
重新启动 ubuntu 之后,你会发现丢失了 windows 7 的启动项。下面来说明如何修复。要在 /etc/default/grub 中修改设置,然后运行 “update-grub“ 命令自动更新 /boot/grub/grub.cfg 中的设置。 命令如下:
sudo gedit /etc/default/grub
修 改 GRUB_TIMEOUT=”10″
然后 sudo update-grub
update 命 令会自动找到 windows 7 启动项。并且自动更新 /boot/grub/grub.cfg 文件。 。
以下为原来的老文章:
Windows 7 和 ubuntu 都已经发布了,想体验一下。 Windows 7 已经安装了,本来想用 wubi 安装 ubuntu ,担心 ubuntu 系统性能不好,使用虚拟机安装吧,也是担心同样的性能问题。好在硬盘比较比较大,留出了 30G 给 ubuntu 9.10 系统。这 30g 的分区在 windows 7 下面是未使用的分区。没有分配盘符。
安装 windows 7 和 ubuntu 9.10 双系统,有两种方法。第一种先安装 windows7 之后安装 ubuntu 。第二种是先安装 ubuntu9.10 ,在安装 windows 7. 第二种方法我没有试过,相信一般的搞双系统的用户都是第一种安装方法。这里就第一种安装方法给大家一个介绍。
一, 安装 windows 7
Windows 7 已经在中国大陆销售,可以购买正版 win 7 系统安装。我这里使用的 windows 7 是 rc 版本。安装方法不再介绍。可以 google 一下。
二, 设置启动项。
接下来进入最为关键的一 个环节,修改启动项。添加 grub 启动项。
1 、 下载最新版本的 Grub4DOS
下 载地址: http://download.gna.org/grub4dos/
下 载并解压缩后,将目录中的 grldr , grldr.mbr , grub.exe 三 个文件复制到 C 盘 根目录下
2 、 在下载好的 ubuntu 9.10 系 统 iso 文 件中 ( 下 载地址为: http://www.ubuntu.org.cn/getubuntu/downloadmirrors/#bt ) , casper 文 件夹目录下,找到 vmlinuz 、 initrd.lz (注 意: ubuntu9.04 文 件名为 initrd.gz ) 解压,并复制到 C 盘 根目录下(无需解压整个 casper 文 件夹,整个 casper 文 件夹很大)
3 、 C 盘 根目录下建立 menu.lst 文 件,内容为:
title Install Ubuntu 9.10
root (hd0,0)
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-9.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,0)/initrd.lz
4 、 接着,在我的电脑 –> 工 具 –> 文 件夹选项 –> 的 查看标签下去掉 “ 隐 藏受保护的操作系统文件 ” 之 前的勾,并勾选 “ 显 示所有文件和文件夹 ” 。 取消 C 盘 根目录下的 boot.ini 文 件的 “ 只 读 ” 属 性,然后用记事本打开 boot.ini 文 件,做如下更改: timeout=0 改 成 timeout=5 或 者更大的数字,在 boot.ini 文 件内容末尾加上一行 C:\grldr=”GRUB”. 如 果找不到 boot.ini 的 话。看如下操作,
复制xp 系统里的boot.ini 到C 盘根目录,在最后一行加上c:\grldr.mbr=”grub” (注意是grldr.mbr )如果身边没有xp 系统那我就吧boot.ini 的代码贴出来供大家使用了,代码如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Microsoft Windows XP Professional” /noexecute=optin /fastdetect
c:\grldr.mbr=”grub”
(附: boot.ini 文 件路径 c:\boot.ini )
三, 硬盘安装 ubuntu 9.10
重启机器。在启动项选择 grub ,再选择 intall ubuntu 9.10. 进入 ubuntu9.10 的安装程序。注意在安装前打开终端,输入 sudo umount -l /isodevice 这一命令取消掉对光盘所 在 驱动 器的挂载,否则 分区界面 找不到分区。
安装过程可以参考 http://forum.ubuntu.org.cn/viewtopic.php?f=77&t=236877 。此文章说的很仔细。不过注意在第四步磁盘分区的选择上要选择未使用的分区。最少两个分区
/根目录
/ swap (交换分区)
四, 修复 Windows 7 启动项
重新启动 ubuntu 之后,你会发现丢失了 windows 7 的启动项。下面来说明如何修复。 Ubuntu 9.04 可以修改 /boot/grub/menu.lst 文件来添加 windows 7 的启动项,方法参考 http://server.zdnet.com.cn/server/2008/0513/857474.shtml 。但是在 ubuntu 9.10 中使用了最新的 grub2 ,和 9.04 完全不同。 grub 在 9.10 中的位置是 /boot/grub/grub.cfg 。
但是 grub.cfg 中说:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
可见,系统默认不赞成用户修改该文件,因为该文件是系统自动生成的,要修改 grub 相关设置,请到 /etc/default/grub 。
果然, /etc/default/grub 中说:
# If you change this file, run ‘update-grub’ afterwards to update
# /boot/grub/grub.cfg.
所以,要在 /etc/default/grub 中修改设置,然后运行 “update-grub“ 命令自动更新 /boot/grub/grub.cfg 中的设置。
sudo gedit /etc/default/grub
修改 GRUB_TIMEOUT=”10″
然后 sudo update-grub
update 命令 会自动找到 windows 7 启动 项。并且自动更新 /boot/grub/grub.cfg 文 件。 。
五, 扩展
修改启动项默认选项和等 待时间,可以修改 /etc/defult/grub 文件的参数。然后运行 sudo update-grub 命令即可。
六, 总结
以上就是硬盘安装 ubuntu 9.10 的全过程。如有疑问,可以留言联系作者。
root@517car:/# ldd /usr/local/sbin/vsftpd
linux-gate.so.1 => (0x006af000)
libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0x00e95000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x0063d000)
libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0x00ccf000)
libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0x00aca000)
libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0x0068b000)
libcap.so.2 => /lib/libcap.so.2 (0×00960000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0×00110000)
/lib/ld-linux.so.2 (0x00f1b000)
libattr.so.1 => /lib/libattr.so.1 (0x00c42000)
没有加载libpam.so.0
ubuntu下面安装这个 apt-get install libpam0g-dev
然后重新make
root@517car:/# ldd /usr/local/sbin/vsftpd
linux-gate.so.1 => (0x00b78000)
libpam.so.0 => /lib/libpam.so.0 (0x001bc000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00be3000)
libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0x003b8000)
libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0x00f57000)
libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0x006cc000)
libcap.so.2 => /lib/libcap.so.2 (0x00bbf000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x001c9000)
libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0x007b1000)
/lib/ld-linux.so.2 (0x0092f000)
libattr.so.1 => /lib/libattr.so.1 (0x009e4000)
到这里就可以使用虚拟用户登录了
cd /etc/fonts/conf.d/
sudo gedit 49-sansserif.conf
修改edit节点,将<string>sans-serif</string>
改为 <string>sans</string>
<match target=”pattern”>
<test qual=”all” name=”family” compare=”not_eq”>
<string>sans-serif</string>
</test>
<test qual=”all” name=”family” compare=”not_eq”>
<string>serif</string>
</test>
<test qual=”all” name=”family” compare=”not_eq”>
<string>monospace</string>
</test>
<edit name=”family” mode=”append_last”>
<string>sans-serif</string> 这里改为<— <string>sans</string>
</edit>
</match>
重启浏览器生效
出现 No <db.h> include file found.
Install the appropriate db*-devel package first.
安装这个 sudo apt-get build-dep postfix
# /etc/fstab: static file system information.
#
# — This file has been automaticly generated by ntfs-config —
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/host/ubuntu/disks/root.disk / ext3 loop,errors=remount-ro 0 1
/host/ubuntu/disks/boot /boot none bind 0 0
/host/ubuntu/disks/usr.disk /usr ext3 loop 0 2
/host/ubuntu/disks/swap.disk none swap loop,sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/sda1 /media/系统盘 ntfs uid=1000,defaults,iochars 0 0
/dev/sda4 /media/UBUNTU vfat uid=1000,defaults,iochars 0 0
/dev/sda5 /media/娱乐盘 ntfs uid=1000,defaults,iochars 0 0
/dev/sda6 /media/工具盘 ntfs uid=1000,defaults,iochars 0 0
/dev/sda7 /media/备份盘 ntfs uid=1000,defaults,iochars 0 0
1)安装vsftpd
Ubuntu安装软件倒不是件困难的事,输入:
sudo apt-get install vsftpd
可能会提示你使用光盘,放进去再按回车就行了。
安装了之后会在/home/下建立一个ftp目录。这时候你可以试着访问下ftp://IP地址。应该可以看到一个空白内容的ftp空间。
默认设置下匿名用户可以下载,但不能写入或是上传
2)设置 vsftpd.conf文件
现在我们要让匿名用户无法访问,并且得输入linux上的用户密码后才能访问到他们自己目录里的内容。
首先找到设置vsftpd的文件,位置在/etc/vsftpd.conf
修改之前最好先备份下这个文件:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old
然后可以改动了:
#不让匿名用户使用#anonymous_enable=YES#本地用户可用local_enable=YES #可用写操作write_enable=YES#不需要显示某目录下文件信息#dirmessage_enable=YES #加点banner提示ftpd_banner=Hello~~ #FTP服务器最大承载用户max_clients=100#限制每个IP的进程max_per_ip=5#最大传输速率(b/s)local_max_rate=256000#隐藏帐号hide_ids=YES
好了,重启下ftp 服务器看看效果
重启后还是和原来一样对吗?呵呵,这是默认的ftp目录在做鬼,我们把它删除,再看看。怎么样?要你输入用户名和密码了吧。
新的问题
1.输入用户名密码后显示的位置是在用户的根目录下,而我们的WEB内容是在public_html目录里
2.用户可以跳到任何其他目录(非常危险..)
要解决这些问题我们还得设置下vsftpd.conf
#启动chroot列表(Change root)chroot_list_enable=YES#指定列表位置(我这用的是默认地址)chroot_list_file=/etc/vsftpd.chroot_list
接下来我们得在vsftpd.chroot_list上写进去我们要限制哪些用户,不让他们“漂移”..
现在有用户linyupark,所以只要sudo nano一下,往里面写就行了
这样我们已经解决第2个问题了,登陆的用户只能在它的用户文件夹里活动,下面我们要更狠一点,让他只能在public_html里活动
依然还是找vsftpd.conf
#这句默认设置里是没有的,自己加user_config_dir=/etc/自己定义一个设置个别用户用的文件夹地址
根据自己设置的地址,建立一个相应的文件夹,然后往里面建立和用户名相同的文件,nano一下:
#本地用户的根地址,好咯,重启下服务器。看看效果吧。
这3个命令的用途都是启动网络接口,不过,ifup与ifdown仅就 /etc/sysconfig/network- scripts内的ifcfg-ethx(x为数字)进行启动或关闭的操作,并不能直接修改网络参数,除非手动调整ifcfg-ethx文件才行。至于 ifconfig则可以直接手动给予某个接口IP或调整其网络参数。下面我们就分别来谈一谈。
1. ifconfig
ifconfig主要是可以手动启动、观察与修改网络接口的相关参数,可以修改的参数很多,包括IP参数以及MTU等都可以修改,它的语法如下:
|
[root@linux ~]# ifconfig {interface} {up|down} <== 观察与启动接口 [root@linux ~]# ifconfig interface {options} <== 设置与修改接口 参数: Interface,网卡接口代号,包括 eth0、eth1、ppp0 等 Options,可以接的参数,包括如下: Up或down,启动 (up) 或关闭 (down) 该网络接口(不涉及任何参数) mtu,可以设置不同的 MTU 数值,例如MTU 1500 (单位为 byte) netmask,就是子屏蔽网络 broadcast,就是广播地址 范例: 范例一:观察所有的网络接口(直接输入 ifconfig) [root@linux ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2 inet addr:192.168.10.100 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::20f:eaff:fe73:682/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3439 errors:0 dropped:0 overruns:0 frame:0 TX packets:2735 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:646935 (631.7 KiB) TX bytes:562313 (549.1 KiB) Interrupt:209 Memory:fb000000-0 |
一般来说,直接输入ifconfig就会列出目前已经被启动的卡,不论这个卡是否有设置IP,都会被显示出来。而如果是输入 ifconfig eth0,则会显示出这个接口的相关数据,而不管该接口是否启动。所以,如果你想要知道某个网卡的Hardware Address,直接输入“ifconfig”网络接口代号””即可。至于上述代码中出现的各项数据是这样的(数据排列由上而下、由左而右)。
· eth0:网卡的代号,也有lo这个loopback。
· HWaddr:网卡的硬件地址,习惯称为MAC。
· inet addr:IPv4的IP地址,后续的Bcase、Mask分别代表的是Broadcast与Netmask。
· inet6 addr:是IPv6的版本的IP,我们没有使用,所以略过。
· RX:那一行代表的是网络由启动到目前为止的数据包接收情况,packets代表数据包数、errors代表数据包发生错误的数量、dropped代表数据包由于有问题而遭丢弃的数量等。
· TX:与RX相反,为网络由启动到目前为止的传送情况。
· collisions:代表数据包碰撞的情况,如果发生太多次,表示你的网络状况不太好。
· txqueuelen:代表用来传输数据的缓冲区的储存长度。
· RX Bytes、TX Bytes:总传送、接收的字节总量。
· Interrupt、Memory:网卡硬件的数据,IRQ岔断与内存地址。
通过观察上述的资料,大致上可以了解到你的网络情况,尤其是RX、TX内的error数量,以及是否发生严重的collision情况,都是需要注意的。
|
范例二:暂时修改网络接口 [root@linux ~]# ifconfig eth0 192.168.100.100 # 如果不加任何其他参数,则系统会依照该 IP 所在的 class 范围, # 自动地计算出 netmask 以及 network, broadcast 等 IP 参数 [root@linux ~]# ifconfig eth0 192.168.100.100 netmask 255.255.255.128 \ > mtu 8000 # 设置网络接口,同时设置 MTU 的数值 [root@linux ~]# ifconfig eth0 MTU 9000 # 仅修改该接口的 MTU 数值,其他的保持不动 [root@linux ~]# ifconfig eth0:0 192.168.50.50 # 仔细看那个接口, eth0:0 。那就是在该网络接口上,再仿真一个网络接口, # 亦即是在一个网卡上面设置多个 IP 的意思啦 [root@linux ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2 inet addr:192.168.10.100 Bcast:192.168.10.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3669 errors:0 dropped:0 overruns:0 frame:0 TX packets:2892 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:667547 (651.9 KiB) TX bytes:584799 (571.0 KiB) Interrupt:209 Memory:fb000000-0 eth0:0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2 inet addr:192.168.200.2 Bcast:192.168.200.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:209 Memory:fb000000-0 # 仔细看,是否与硬件有关的信息都相同。没错。因为是同一个网卡。 [root@linux ~]# ifconfig eth0:0 down # 关掉 eth0:0 这个接口。如果想要启动 eth1 ,并且不设置任何网络参数 # ifconfig eth1 up 就可以实现 [root@linux ~]# /etc/init.d/network restart # 刚刚设置的数据全部失效,会以 ifcfg-ethx 的设置为主 |
使用ifconfig可以暂时用手动来设置或修改某个适配卡的相关功能,并且也可以通过eth0:0这种虚拟的网络接口来设置一张网卡上面的多个 IP。手动的方式是比较简单。而且设置错误也没有关系,因为我们可以利用 /etc/init.d/network restart来重新启动整个网络接口,那么之前手动的设置数据会全部失效。另外,要启动某个网络接口,但又不让它具有IP参数时,直接给它 ifconfig eth0 up即可。这个操作经常在无线网卡当中进行,因为我们需要启动无线网卡让它去检测AP存在与否。
2. ifup、ifdown
实时地手动修改一些网络接口参数,可以利用ifconfig来实现,如果是要直接以配置文件,亦即是在 /etc/sysconfig/network-scripts里面的ifcfg-ethx等文件的设置参数来启动的话,那就得要通过ifdown或 ifup来实现了。
|
[root@linux ~]# ifup {interface} [root@linux ~]# ifdown {interface} [root@linux ~]# ifup eth0 |
ifup与ifdown真是太简单了。这两个程序其实是script而已,它会直接到 /etc/ sysconfig/network-scripts目录下搜索对应的配置文件,例如ifup eth0,它会找出ifcfg-eth0这个文件的内容,然后加以设置。关于ifcfg-eth0的设置请参考前一章连上Internet的说明。
不过,由于这两个程序主要是搜索设置文件(ifcfg-ethx)来进行启动与关闭的,所以在使用前请确定ifcfg-ethx是否真的存在于正确 的目录内,否则会启动失败。另外,如果以ifconfig eth0来设置或者是修改了网络接口后,就无法再以ifdown eth0的方式来关闭了。因为ifdown会分析比较目前的网络参数与ifcfg-eth0是否相符,不符的话,就会放弃这次操作。因此,使用 ifconfig修改完毕后,应该要以ifconfig eth0 down才能够关闭该接口。
前面提到的只是显示文件的属性与权限,或者是移动与复制文件或目录,那么,如果要查看文件内容,如何做呢?有相当多的命令:最常用的显示文件内容的 命令是cat与more及less。此外,如果要查看一个大型文件(好几百MB时),只需要最后的几行字,如何做?用tail,此外,tac命令也可以实 现。下面说说各个命令的用途。
• cat:由第一行开始显示文件内容。
• tac:从最后一行开始显示,可以看出tac与cat字母顺序相反。
• nl:显示的时候,也输出行号。
• more:一页一页地显示文件内容
• less与more类似,但它可以向前翻页。
• head:只看前几行。
• tail:只看最后几行。
• od:以二进制方式读取文件内容。
更改文件权限
我们已经知道文件权限对于系统的安全重要性了,也知道文件权限与用户与用户组的关系了,那么,如何修改文件的权限呢?我们可以修改多少文件权限呢?其实,一个文件的权限很多。我们先介绍几个简单的,例如:用户组、拥有者、各种身份的权限等等。
• chgrp:改变文件所属用户组 。
• chown:改变文件拥有者。
• chmod:改变文件的属性、SUID等特性。
更改所属用户组, chgrp
改变文件的用户组很简单,直接用chgrp即可,这个命令就是change group(改变用户组)的缩写。这样就很好记了。不过,请记住,要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误。
假设以root的身份登入FC4,那么,在你的家目录内有一个install.log文件,如何改变该文件的用户组呢?假设你已经知道在 /etc/group里已经存在一个名为users的用户组,但是,testing这个用户组名字就不存在 /etc/group中了,此时改变用户组成为users与testing,会有什么现象发生呢?
|
[root@linux ~]# chgrp [-R] dirname/filename … 参数: -R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录 都更新成为这个用户组。常常用在更改某一目录的情况。 范例: [root@linux ~]# chgrp users install.log [root@linux ~]# ls -l -rw-r–r– 1 root users 68495 Jun 25 08:53 install.log [root@linux ~]# chgrp testing install.log chgrp: invalid group name `testing’ <== 出现错误信息~找不到这个用户组名~ |
发现了吗?文件的用户组被改成users了,但要改成testing的时候,就会发生错误。注意,出现错误信息,还是要查查错误信息的内容才好。
更改文件拥有者, chown
那 么,如何改变一个文件的拥有者呢?很简单。既然改变用户组是change group,那么改变拥有者就是change owner(改变拥有者)。这就是chown这个命令的用途,要注意的是,用户必须是已经存在系统中的,也就是在 /etc/passwd这个文件中有记录的用户名称才可改变。
chown的用途很多,还可以顺便直接修改用户组的名称。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可。我们来看看语法与范例:
|
[root@linux ~]# chown [-R] 账号名称 文件或目录 [root@linux ~]# chown [-R] 账号名称:用户组名称 文件或目录 参数: -R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录 都更新成为这个用户组。常常用在更改某一目录的情况。 范例: [root@linux ~]# chown bin install.log [root@linux ~]# ls -l -rw-r–r– 1 bin users 68495 Jun 25 08:53 install.log [root@linux ~]# chown root:root install.log [root@linux ~]# ls -l -rw-r–r– 1 root root 68495 Jun 25 08:53 install.log |
我们知道如何改变文件的用户组与拥有者了,那么,什么时候要使用chown或chgrp呢?或许你会觉得奇怪吧?是的,确实有时候需要更改文件的拥有者的,最常见的例子就是在复制文件给其他人时,我们使用最简单的cp来说明好了:
| [root@linux ~]# cp 来源文件 目的文件 |
假设今天要将 .bashrc文件复制成为 .bashrc_test,且是要给bin这个人,你可以这样做:
|
[root@linux ~]# cp .bashrc .bashrc_test [root@linux ~]# ls -al .bashrc* -rw-r–r– 1 root root 395 Jul 4 11:45 .bashrc -rw-r–r– 1 root root 395 Jul 13 11:31 .bashrc_test |
怎么办?.bashrc_test还是属于root所有,如此一来,即使将文件拿给bin用户了,他仍然无法修改(看属性就知道了),所以就必须修改这个文件的拥有者与用户组。
更改9个属性, chmod
文件属性的改变使用chmod命令,但是,属性的设置方法有两种,分别可以使用数字或者是符号。
• 数字类型改变文件权限
Linux文件的基本属性有9个,分别是owner/group/others组别的read/write/ excute属性,先复习一下刚刚上面提到的数据:
| -rwxrwxrwx |
这9个属性是三个一组。其中,可以使用数字来表示各个属性,各属性的对照表如下:
|
r:4 w:2 x:1 |
同一组(owner/group/others)的3个属性(r/w/x)是需要累加的,例如当属性为 [-rwxrwx---] 则是:
|
owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= — = 0+0+0 = 0 |
所以,等一下设置属性的更改时,该属性的数字就是770。更改属性的命令chmod的语法是这样的:
| [root@linux ~]# chmod [-R] xyz 文件或目录 |
参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。
举例来说,如果要将 .bashrc这个文件所有的属性都打开,那么就发出命令:
|
[root@linux ~]# ls -al .bashrc -rw-r–r– 1 root root 395 Jul 4 11:45 .bashrc [root@linux ~]# chmod 777 .bashrc [root@linux ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc |
看到了吗?属性改变了。由于一个文件有三组属性,所以可以发现上面777为三组,而由于我们将所有的属性都打开,所以数字都相加,即“r+w+x = 4+2+1 = 7”。
如 果要将属性变成“-rwxr-xr–”呢?那么就成为 [4+2+1][4+0+1][4+0+0]=754。所以需要发出命令chmod 754 filename。最常发生的一个问题就是,常常我们以vi编辑shell的文字文件后,其属性通常是 -rw-rw-rw-,也就是666属性,如果要将它变成可执行文件,并且不要让其他人修改此文件的话,那么就需要 -rwxr-xr-x这个755的属性,所以就要使用chmod 755 test.sh。
另外,有些文件不希望被其他人看到,例如 -rwxr—–,那么就使用命令chmod 740 filename。
|
例题3:将 .bashrc文件的属性改回原来的 -rw-r–r–。 答: chmod 644 .bashrc |
• 符号类型改变文件权限
还 有一个改变属性的方法。从之前的介绍中可以发现,基本上就9个属性,分别是 (1)user (2)group (3)others三组。我们就可以通过u, g, o来表示三组的属性。此外,a表示all,即全部的三组。读写属性可以写成r, w, x。也就是可以使用下面的方式来看:
|
chmod |
u g o a |
+(加入) -(除去) =(设置) |
r w x |
文件或目录 |
假如我们要“设置”一个文件的属性为“-rwxr-xr-x”,基本上就是:
user (u):具有可读、可写、可执行的权限。
group与others (g/o):具有可读与执行的权限。
所以就是:
| [root@linux ~]# chmod u=rwx,go=rx .bashrc |
# 注意。那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格。
|
[root@linux ~]# ls -al .bashrc -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc |
请 注意,r=rwx,og=rx这一段文字之间并没有空格隔开。那么,假如是“-rwxr-xr–”?可以使用“chmod u=rwx,g=rx,o=r filename”来设置。此外,如果不知道原先的文件属性,而只想要增加 .bashrc文件的每个人均可写入的权限,那么就可以使用:
|
[root@linux ~]# ls -al .bashrc -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc [root@linux ~]# chmod a+w .bashrc [root@linux ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc |
而如果是要将属性去掉,而不更改其他属性呢?例如要去掉所有人的x属性,则:
|
[root@linux ~]# chmod a-x .bashrc [root@linux ~]# ls -al .bashrc -rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc |
知 道 +, -, = 的不同点了吗?+ 与 – 的状态下,只要是没有指定到的项目,则该属性“不会变动”。例如,上面的例子中,由于仅以 – 去掉x,则其他两个保持当时的值不变。多多练习一下,你就会知道如何改变属性。这在某些情况下很好用。举例来说,你想要教一个人如何让一个程序可以拥有执 行的权限,又不知道该文件原本的权限是什么,此时,利用chmod a+x filename,就可以让该程序拥有执行的权限了。很方便。
make执行过程中产生的错误并不是所有都是致命的;特别在命令行之前使用“-”、或者使用make的“-k”选项。make执行过程的致命错误都带有前缀字符串“***”。
错误的信息都有前缀,一种是执行程序名作为错误的前缀(通常是“make”);另外一种是当Makefile本身存在错误时,前缀包含了文件名和出现错误的行号。
在下述的错误列表中,省略了普通的前缀:
[FOO] Error NN
[FOO] signal description
这类错误并不是make的真正的错误。它表示make所调用的程序返回非零的错误码(Error NN),这种情况make会将其作为失败处理、或者以非正常方式退出(携带某种信号),参考 4.4 命令的错误 一节。
如果错误信息中没有附加“***”字符串,则是子过程的调用失败,如果Makefile中此命令有前缀“-”,make会忽略这个错误。
missing separator. Stop.
missing separator (did you mean TAB instead of 8 spaces?). Stop.
不可识别的命令行,make在读取Makefile过程中不能解析其中包含的内容。GNU make在读取Makefile时根据各种分隔符(:, =, [TAB]字符等)识别Makefile的每一行内容。这些错误意味着make不能发现一个合法的分隔符。
出现这些错误信息的可能的原因是(或许是编辑器,绝大部分是ms-windows的编辑器)在Makefile中的命令之前使用了4个(或者8个)空格代 替了[Tab]字符。这种情况,将产生上述的第二种形式产生错误信息。且记,所有的命令行都应该是以[Tab]字符开始的。参考 4 规则中的命令书写 一章
commands commence before first target. Stop.
missing rule before commands. Stop.
Makefile可能是以命令行开始:以[Tab]字符开始,但不是一个合法的命令行(例如,一个变量的赋值)。命令行必须和规则一一对应。
产生第二种的错误的原因可能是一行的第一个非空字符为分号,make会认为此处遗漏了规则的“target: prerequisite”部分。参考 3.2 规则的语法 一节
No rule to make target `XXX’.
No rule to make target ` XXX ‘, needed by `yyy’.
无法为重建目标“XXX”找到合适的规则,包括明确规则和隐含规则。
修正这个错误的方法是:在Makefile中添加一个重建目标的规则。其它可能导致这些错误的原因是Makefile中文件名拼写错误,或者破坏了源文件树(一个文件不能被重建,可能是由于依赖文件的问题)。
No targets specified and no makefile found. Stop.
No targets. Stop.
第一个错误表示在命令行中没有指定需要重建的目标,并且make不能读入任何makefile文件。第二个错误表示能够找到makefile文件,但没有终极目标或者没有在命令行中指出需要重建的目标。这种情况下,make什么也不做。参考 第 8 章 执行make
Makefile `XXX’ was not found.
Included makefile `XXX’ was not found.
没有使用“-f”指定makefile文件,make不能在当前目录下找到默认Makefile(makefile或者GNUmakefile)。使用“-f”指定文件,但不能读取这个指定的makefile文件。
warning: overriding commands for target `XXX’
warning: ignoring old commands for target `XXX’
对同一目标“XXX”存在一个以上的重建命令。GNU make规定:当同一个文件作为多个规则的目标时,只能有一个规则定义重建它的命令(双冒号规则除外)。如果为一个目标多次指定了相同或者不同的命令,就会产生第一个告警;第二个告警信息说新指定的命令覆盖了上一次指定的命令。
Circular XXX <- YYY dependency dropped.
规则的依赖关系产生了循环:目标“XXX”的依赖文件为“YYY”,而依赖“YYY”的依赖列表中又包含“XXX”。
Recursive variable `XXX’ references itself (eventually). Stop.
make的变量“XXX”(递归展开式)在替换展开时,引用它自身。无论对于直接展开式变量(通过:=定义的)或追加定义(+=),这都是不允许的。参考 第 5 章 使用变量
Unterminated variable reference. Stop.
变量或者函数引用语法不正确,没有使用完整的的括号(缺少一左括号或者右括号)。
insufficient arguments to function `XXX’. Stop.
函数“XXX”引用时参数数目不正确。函数缺少参数。
missing target pattern. Stop.
multiple target patterns. Stop.
target pattern contains no `%’. Stop.
mixed implicit and static pattern rules. Stop.
不正确的静态模式规则。
第一条错误的原因是:静态模式规则的目标段中没有模式目标;
第二条错误的原因是:静态模式规则的目标段中存在多个模式目标;
第三条错误的原因是:静态模式规则的目标段目标模式中没有包含模式字符“%”;
第四条错误的原因是:静态模式规则的三部分都包含了模式字符“%”。正确的应该是只有后两个才可以包含模式字符“%”。
关于静态模式规则可参考 3.12 静态模式 一节
warning: -jN forced in submake: disabling jobserver mode.
这一条告警和下条告警信息发生在:make检测到递归的make调用时,可通信的子make进程出现并行处理的错误(参考 4.6 make的递归执行 一节)。递归执行的make的命令行参数中存在“-jN”参数(N的值大于1),在有些情况下可能导致此错误,例如:Makefile中变量“MAKE”被赋值为“make –j2”,并且递归调用的命令行中使用变量“MAKE”。在这种情况下,被调用make进程不能和其它make进程进行通信,其只能简单的独立的并行处理两个任务”。
warning: jobserver unavailable: using -j1. Add `+’ to parent make rule.
为了现实make进程之间的通信,上层make进程将传递信息给子make进程。在传递信息过程中可能存在这种情况,子make进程不是一个实际的 make进程,而上层make却不能确定子进程是否是真实的make进程。它只是将所有信息传递下去。上层make采用正常的算法来决定这些(参考 4.6.1 变量MAKE 一小节)。当出现这种情况,子进程只会接受父进程传递的部分有用的信息。子进程会产生该警告信息,之后按照其内建的顺序方式进行处理。
E: 无法打开锁文件 /var/cache/apt/archives/lock – open (13 Permission denied)
E: 无法对下载目录加锁
sudo mv /var/cache/apt/archives/lock ~/.
sudo apt-get clean
要使用make必须安装sudo apt-get -f install build-essential
编译Mysql必须安装元件库 sudo apt-get install libncurses5-dev
编译安装完mysql 后进入share文件夹的mysql文件夹的mysql.server这个启动脚本启动mysql
mysql.server start



