Browse > Home / Archive by category 'Hacks'

| 订阅RSS

[命令集3.6]挂载/重挂载一个文件系统

三月 23rd, 2009 | No Comments | Posted in Hacks, Linux

举个 cdrom 的例子。如果已经列于 /etc/fstab 中:

 # mount /cdrom

或在 /dev/ 中查找设备,亦或使用 dmesg 命令
FreeBSD

 # mount -v -t cd9660 /dev/cd0c /mnt # cdrom
 # mount_cd9660 /dev/wcd0c /cdrom      # 另外一个方法
 # mount -v -t msdos /dev/fd0c /mnt # 软驱

/etc/fstab 中的一条:

 # Device                 Mountpoint      FStype  Options         Dump    Pass#
 /dev/acd0                /cdrom          cd9660  ro,noauto       0       0

要允许用户做这些,可以这么做:

 # sysctl vfs.usermount=1   # 或者在 /etc/sysctl.conf 中插入一条 "vfs.usermount=1"

Linux

 # mount -t auto /dev/cdrom /mnt/cdrom # 典型的 cdrom 挂载命令
 # mount /dev/hdc -t iso9660 -r /cdrom # IDE
 # mount /dev/sdc0 -t iso9660 -r /cdrom # SCSI

/etc/fstab 中的条目:
/dev/cdrom /media/cdrom subfs noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec 0 0
用 Linux 挂载一个 FreeBSD 分区
用 fdisk 查找分区号,这通常是 root 分区,但也可能是其他 BSD slice。如果 FreeBSD 有许多 slice,他们
不列于同一个 fdisk 分区表中,但可见于 /dev/sda* 或 /dev/hda* 中。

 # fdisk /dev/sda                      # 查找 FreeBSD 分区
 /dev/sda3 *          5357         7905    20474842+ a5 FreeBSD
 # mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt
 /dev/sda10 = /tmp; /dev/sda11 /usr # 其他 slice

重挂载
不用卸载一个设备来重挂载。 对 fsck 来说是必须的。举个例子:

 # mount -o remount,ro /               # Linux
 # mount -o ro /                       # FreeBSD

从 cdrom 拷贝原始数据进一个 iso 映像文件:

# dd if=/dev/cd0c of=file.iso
Tags: , ,

[linux秘笈26]Stat命令

三月 19th, 2009 | No Comments | Posted in Hacks, Linux

Stat命令被用来查看单个文件或者文件系统的状态以及属性。
显示某一个文件或者文件系统的状态

jcai@jcai-notebook:~$ stat /etc/mysql/my.cnf 
  File: `/etc/mysql/my.cnf'
  Size: 3978      	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 449073      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2009-03-18 21:31:03.000000000 +0800
Modify: 2009-03-04 18:08:03.000000000 +0800
Change: 2009-03-04 18:08:03.000000000 +0800
jcai@jcai-notebook:~$ stat /home/jcai
  File: `/home/jcai'
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: fe00h/65024d	Inode: 2187265     Links: 66
Access: (0755/drwxr-xr-x)  Uid: ( 1000/    jcai)   Gid: ( 1000/    jcai)
Access: 2009-03-19 08:14:47.000000000 +0800
Modify: 2009-03-19 09:22:12.000000000 +0800
Change: 2009-03-19 09:22:12.000000000 +0800

使用 -f 选项来战士文件系统的状态

jcai@jcai-notebook:~$ stat -f /
  File: "/"
    ID: f346283e2da86295 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 4845177    Free: 3879940    Available: 3635752
Inodes: Total: 1224000    Free: 1082670
Tags: , , ,

[命令集3.1]linux文件的权限

三月 18th, 2009 | No Comments | Posted in Hacks, Linux

用 chmod 和 chown 更改访问权限和所有权。对于所有用户的默认掩码(umask)可以在 /etc/profile (Linux)
或 /etc/login.conf (FreeBSD) 中修改。其默认掩码(umask)通常为 022。掩码可以和777做减法,从而得到755
的权限。
1 –x 执行 # Mode 764 = 执行/读/写 | 读/写 | 读
2 -w- 写 # |—所有者|—用户组|—其他用户|
4 r– 读
ugo=a u=所有者, g=用户组, o=其他用户, a=所有用户

# chmod [OPTION] MODE[,MODE] FILE    # MODE 可以是 [ugoa]*([-+=]([rwxXst]))
# chmod 640 /var/log/maillog         # 更改 maillog 访问权限为 -rw-r-----
# chmod u=rw,g=r,o= /var/log/maillog # 同上
# chmod -R o-r /home/*               # 递归去除所有其他用户的可读权限
                                       在可执行位设置 SUID (知道你在干什么!13)
# chmod u+s /path/to/prog            #
# find / -perm -u+s -print           # 查找所有设置过 SUID 位的程序
# chown user:group /path/to/file     # 改变文件的所有者和文件关联的组
# chgrp group /path/to/file          # 改变文件关联的组
# chmod 640 `find ./ -type f -print` # Change permissions to 640 for all files
# chmod 751 `find ./ -type d -print` # Change permissions to 751 for all directories
Tags: , , ,

Linux秘笈25.Linux的Cut命令

三月 18th, 2009 | 2 Comments | Posted in Hacks, 软件架构

Cut command can be used to display only specific columns from a text file or
other command outputs.
Following are some of the examples.
Display the 1st field (employee name) from a colon delimited file

  $ cut -d: -f 1 names.txt
  Emma Thomas
  Alex Jason
  Madison Randy
  Sanjay Gupta
  Nisha Singh

Display 1st and 3rd field from a colon delimited file

  $ cut -d: -f 1,3 names.txt
  Emma Thomas:Marketing
  Alex Jason:Sales
  Madison Randy:Product Development
  Sanjay Gupta:Support
  Nisha Singh:Sales

Display only the first 8 characters of every line in a file

  $ cut -c 1-8 names.txt
  Emma Tho
  Alex Jas
  Madison
  Sanjay G
  Nisha Si
Tags: , , ,

[命令集]重设 root 密码

二月 22nd, 2009 | No Comments | Posted in Hacks, Linux

Linux 方法 1
在引导加载器(lilo 或 grub)中,键入如下启选项:
init=/bin/sh
内核会挂载 root 分区,进程 init 会启动 bourne shell 而不是 rc,然后是运行级别。使用命令 passwd 设
置密码然后重启。别忘了需要在单用户模式下做这些动作。
如果重启后 root 分区被挂载为只读,重新挂在它为读写:

 # mount -o remount,rw /
 # passwd                       # 或者删除 root 密码 (/etc/shadow)
 # sync; mount -o remount,ro /  # sync 在重新挂在为只读之前 sync 一下
 # reboot

FreeBSD 和 Linux 方法 2
FreeBSD 不会让你这么做。解决方案是用其他操作系统(像系统紧急修复光盘)挂载 root 分区,然后更改密码。
• 用 live cd 或安装盘启动进入修复模式后,会得到一个 shell。
• 用 fdisk 查找 root 分区。比如:fdisk /dev/sda
• 挂载它并使用 chroot 命令:

 # mount -o rw /dev/ad4s3a /mnt
 # chroot /mnt
 # passwd
 # reboot
Tags: ,