Khác nhau giữa EFS và BitLocker
- EFS được dùng để encrypt và bảo vệ từng file riêng biệt trên một ổ đĩa, dựa trên từng user một. Nếu có nhiều user trên một máy, thì file vẫn có thể được encrypt một cách độc lập theo từng user.
EFS không cần hardware đặc biệt hỗ trợ và không cần quyền Admin để sử dụng.
- BitLocker encrypt toàn bộ một ổ đĩa, kể cả dữ liệu lẫn hệ thống. BitLocker được bật hoặc tắt cho toàn bộ các user, không phụ thuộc vào từng user acount cụ thể nào.
BitLocker dùng TPM (Trusted Platform Module), một microchip hỗ trợ các tính năng bảo mật nâng cao. Chỉ có administrator mới có thể bật hoặc tắt BitLocker.
Có thể kết hợp EFS và BitLocker để bảo vệ chặt chẽ hơn.
Windows Server 2008 Editions
1. Standard Edition: provides server functionality for most server role and features. It includes both full and Server Core installation options.
Suitable for small to medium company based at one location or with several branches that require basic server features and typical storage capacity.
2. Enterprise Edition: builds on Standard edition to provides greater scalability and availability. This edition also supports various enterprise technologies, such as clustering.
Standard edition has four x64 and four x86 sockets, the Enterprise edition has eight for each. Other features the Enterprise edition has that the Standard edition does not include are Hot Add Memory and Fault Tolerant Memory Sync. Enterprise edition allows unlimited network access connections and Terminal Services Gateway access. It comes with 4 virtual image use rights, whereas Standard edition comes with only 1.
Suitable platform for deploying business-critical application. Provides the foundation for a dynamic, scalable IT infrastructure. Improved availability through its clustering and hot-add processor capabilities, and improved security through consolidated identity management features. Can be used to consolidate applications with virtualization licensing rights, thus reducing infrastructure costs.
Suitable medium to large organization that is growing and that therefore requires maximum scalability. This edition is also suitable for organizations that require clustering technologies.
3. Datacenter Edition: has the same functionality as the Enterprise edition, but also provides support for additional memory and processors, and has unlimited virtual image use rights.
The main advantages of this edition include improved availability through clustering and dynamic hardware partitioning capabilities, and lower infrastructure costs. With this edition, you can scale from 2 to 24 processors.
Suitable for data center or telecommunications company that requires a reliable system with maximum storage capacity.
4. Webserver 2008 Edition: was created specifically to be used as a web and application server. Other server roles are not available in this edition.
Suitable for organizations that deploy web pages, sites, applications, and services to their users.
5. Windows Server 2008 for Itanium-based System edition: was created to be used with Intel Itanium 64-bit processors to provide web and application server functionality on that platform. This edition can be used for reduced instruction set computer (RISC)-based UNIX servers. Some server roles and features – for example Windows Media Services, Windows SharePoint Services, and file and print servers – may not be available in this edition.
Virtual Hard Disk on Windows 7
1. Create and Use a Virtual Hard Disk on Windows 7
2. How to use a VHD to dual-boot Windows 8 on a Windows 7 PC
3. “Ghost” Windows 7 using VHD:
- Have new PC without OS
- Have a VHD Win 7 Image
- Start new PC from Windows PE (Preinstallation Environment)
- Create partition on new PC (using Diskpart)
- Using ImageX to install the VHD Image
- Make the image bootable using BCDboot
What is a Hybrid Mobile App?
Tham khảo để phát triển ứng dụng trên IBM Worklight Framework.
- Native apps are built for a specific platform with the platform SDK, tools and languages, typically provided by the platform vendor (e.g. xCode/Objective-C for iOS, Eclipse/Java for Android, Visual Studio/C# for Windows Phone).
- Mobile Web apps are server-side apps, built with any server-side technology (PHP, Node.js, ASP.NET) that render HTML that has been styled so that it renders well on a device form factor.
- Hybrid apps, like native apps, run on the device, and are written with web technologies (HTML5, CSS and JavaScript). Hybrid apps run inside a native container, and leverage the device’s browser engine (but not the browser) to render the HTML and process the JavaScript locally. A web-to-native abstraction layer enables access to device capabilities that are not accessible in Mobile Web applications, such as the accelerometer, camera and local storage.
What Should I Choose?
One of the most common concerns for web developers new to the mobile app world is the learning curve required to build native apps, or the lack of education on what a hybrid app is. My advice is, before committing down a single path, consider the user experience and what each option provides you. Native apps will always provide the fastest performance, at the cost of being more complex to code when compared to a hybrid app, while a hybrid app will be easier to build, using HTML5 and JavaScript, at the cost of giving up a little bit of speed. If the user experience you want to create is a Need for Speed style game, chances are you’ll want to use native technology to implement the app for each mobile platform you’re targeting in order to get the best graphics performance. If you want to build the next Foursquare, using geolocation and providing a means for displaying data and updating data, a hybrid app is a perfect solution and enables you to build it once, publish it through app stores, and have it work on several platforms.
Like any other technology choice, deciding between native and hybrid requires you to look at the user experience and decide on the level of investment you need to make to achieve the goal. Native apps will always require more investment because they are written with more complex languages, designs and structures. They also need to be written/rewritten for each mobile platform you are targeting. Hybrid apps will always enable you to build for more platforms faster, if you are willing to sacrifice small amounts of performance (e.g. game-level responsiveness).
What is a Hybrid App?
Hybrid, by definition is anything derived from heterogeneous sources, or composed of elements of different or incongruous kinds. A hybrid app is one that is written with the same technology used for websites and mobile web implementations, and that is hosted or runs inside a native container on a mobile device. It is the marriage of web technology and native execution.
Hybrid apps use a web view control (UIWebView on iOS, WebView on Android and others) to present the HTML and JavaScript files in a full-screen format, using the native browser rendering engine (not the browser itself). WebKit is the browser rendering engine that is used on iOS, Android, Blackberry and others. That means that the HTML and JavaScript used to construct a hybrid app is rendered/processed by the WebKit rendering engine (for you Windows 8 folks, this is what the IE10 engine does for Metro style apps that use WinJS) and displayed to the user in a full-screen web view control, not in a browser. No longer are you constrained to using HTML and JavaScript for only in-browser implementations on mobile devices.
The real secret sauce of hybrid apps is the implementation of an abstraction layer that exposes the device capabilities (read: native APIs) to the hybrid app as a JavaScript API. This is something not possible with Mobile Web implementations because of the security boundary between the browser and the device APIs. Apache Cordova (formerly PhoneGap) is an example of a JavaScript abstraction layer over native APIs (for you Windows 8 folks, WinJS is another example of a JavaScript abstraction layer on top of native APIs). Through this abstraction layer a common set of APIs is exposed in JavaScript, and these JavaScript APIs work on any device supported by the framework (for WinJS that’s only Windows 8, but for Cordova that is seven mobile platforms including iOS, Android, Blackberry and Windows Phone 7). When the native wrapper is compiled around the HTML, CSS and JavaScript resources, there is an interop layer added that connects the JavaScript APIs with the platform specific APIs.
What this really means is that, for example if I build a mobile app with Apache Cordova, I can use JavaScript to access a native API, like the camera, using a single API call regardless of what platform the app will run on.
01.navigator.camera.getPicture (02. onCameraSuccess,03. onCameraError,04. {05. quality: 50,06. destinationType: Camera.DestinationType.DATA_URL07. }08.);09.10.function onCameraSuccess (imageData) {11. var image = document.getElementById('myImage');12. image.src = "data:image/jpeg;base64," + imageData;13.}14. 15.function onCameraError (message) {16. alert('Failed because: ' + message);17.}Under the covers the JavaScript is making an interop call that access the native API for the camera. That means that on an iOS device this JavaScript is calling into the native layer to instantiate a UIImagePickerController and on Android it creates an Intent to use MediaStore.ACTION_IMAGE_CAPTURE to take a picture. When developing a hybrid app you don’t need to worry about this level of detail. All you need to do is call the JavaScript function (navigator.camera.getPicture() in this case), and respond to the outcome (the imageData passed to the onCameraSuccess call back function in this case).
Summary
Hybrid apps are a great option for you if you:
- Want to target multiple mobile platforms
- Want to take advantage of device capabilities like geolocation, accelerometer or the camera
- Want the app to be useable when the device is offline
- Don’t need the advanced graphics performance that you can only get from a native app.
Hybrid apps are built with web technologies which means there are millions of web developers who already have the base skill set to build mobile apps.
Here is a graph that highlights the differences in native, hybrid and mobile web applications.

Đề thi thực hành Linux
Đề thi thực hành Linux, thời lượng: 60 phút. Bài thi được làm trên hệ điều hành CentoS 5, chạy trên máy ảo VMWare.
Câu 1: Đề chung – 4 điểm
- Thêm 4 ổ cứng vào hệ thống, mỗi ổ dung lượng 10GB.
- Tạo 2 hệ thống RAID level 1 tên là md0 và md1, mỗi RAID gồm 2 ổ đĩa cứng vừa add.
- Tạo Volume Group lvm-raid gồm 2 hệ thống RAID vừa tạo
- Tạo 2 Logical Volume: share dung lượng 6GB, doc dung lượng 5GB
- Tạo hệ thống file ext3 cho 2 logical volume
- Mount logical volume vào thư mục /mnt/share và /mnt/doc.
- Tạo 2 thư mục tên DIR1 và DIR2 trong /mnt/share.
Câu 2: Đề chung – 2 điểm
Tạo quota cho thư mục /mnt/share:
- Giới hạn cho user tên là project
- Giới hạn inode soft: 4
- Giới hạn inode hard: 7
(còn tiếp)
Linux IP Forwarding
In this lab, we will use Linux IP Forwarding to connect 02 different subnets together.
We need 03 Linux VMWare machines with the model as below:
1. Linux 1: 01 NIC eth0, connect to VMNet2: 192.168.2.0/24
2. Linux 2: 02 NIC
- eth0 connect to VMNet2 192.168.2.0/24
- eth1 connect to VMNet3 192.168.3.0/24
3. Linux 3: 01 NIC eth0, connect to VMNet3: 192.168.3.0/24
After configuring, Linux 1 will ping Linux 3 successfully.
1. Configure Linux 1
All we need is set up eth0 of Linux 1 as below:
2. Configure Linux 3
All we need is set up eth0 of Linux 3 as below:
3. Configure Linux 2
This is the most important machine because it’s the bridge between 2 subnets. First, we need to set up eth0 and eth1 of Linux 2 as below:
Second, we need to enable ip forwarding function.
Edit file sysctl.conf as below:
vi /etc/sysctl.conf
Goto the line
net.ipv4.ip_forward = 0
Change it to
net.ipv4.ip_forward = 1
Save, exit, then restart network service:
service network restart
4. Test:
Ping Linux 3 from Linux 2 successfully.
This lab is done on:
[root@centos ~]# lsb_release -a | grep Description ; echo “Linux kernel: `uname -r`”
Description: CentOS release 5.7 (Final)
Linux kernel: 2.6.18-274.18.1.el5
dongthao
Common backup Linux backup tools – 2
3. Dump
Dump is a nice tool to backup an entire filesystem (not for a specific subdirectory). It supports full and incremental backup in nature.
Create full backup
[root@centos ~]# mount
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sdb1 on /mnt/doc type ext3 (rw)[root@centos ~]# dump -0uf /root/backup/full /mnt/doc
DUMP: Date of this level 0 dump: Tue Jan 31 01:42:20 2012
DUMP: Dumping /dev/sdb1 (/mnt/doc) to /root/backup/full
DUMP: Label: none
DUMP: Writing 10 Kilobyte records
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 475 blocks.
DUMP: Volume 1 started with block 1 at: Tue Jan 31 01:42:25 2012
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: Closing /root/backup/full
DUMP: Volume 1 completed at: Tue Jan 31 01:42:25 2012
DUMP: Volume 1 490 blocks (0.48MB)
DUMP: 490 blocks (0.48MB) on 1 volume(s)
DUMP: finished in less than a second
DUMP: Date of this level 0 dump: Tue Jan 31 01:42:20 2012
DUMP: Date this dump completed: Tue Jan 31 01:42:25 2012
DUMP: Average transfer rate: 0 kB/s
DUMP: DUMP IS DONE
[root@centos ~]# ls -alh /root/backup/
total 580K
drwxr-xr-x 2 root root 4.0K Jan 31 01:42 .
drwxr-x— 24 root root 4.0K Jan 31 01:40 ..
-rw-r–r– 1 root root 10K Jan 29 00:01 29012012
-rw-r–r– 1 root root 10K Jan 30 00:00 30012012
-rw-r–r– 1 root root 10K Jan 31 00:00 31012012
-rw-r–r– 1 root root 490K Jan 31 01:42 full
-rw-r–r– 1 root root 10K Mar 8 2012 home08032012
Create incremental backup 1
[root@centos ~]# touch /mnt/doc/file1 /mnt/doc/file2
[root@centos ~]# dump -1uf /root/backup/incremental1 /mnt/docDUMP: Date of this level 1 dump: Tue Jan 31 01:44:55 2012
DUMP: Date of last level 0 dump: Tue Jan 31 01:42:20 2012
DUMP: Dumping /dev/sdb1 (/mnt/doc) to /root/backup/incremental1
DUMP: Label: none
DUMP: Writing 10 Kilobyte records
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 468 blocks.
DUMP: Volume 1 started with block 1 at: Tue Jan 31 01:44:55 2012
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: Closing /root/backup/incremental1
DUMP: Volume 1 completed at: Tue Jan 31 01:44:55 2012
DUMP: Volume 1 480 blocks (0.47MB)
DUMP: 480 blocks (0.47MB) on 1 volume(s)
DUMP: finished in less than a second
DUMP: Date of this level 1 dump: Tue Jan 31 01:44:55 2012
DUMP: Date this dump completed: Tue Jan 31 01:44:55 2012
DUMP: Average transfer rate: 0 kB/s
DUMP: DUMP IS DONE[root@centos ~]# ls -alh /root/backup/
total 1.1M
drwxr-xr-x 2 root root 4.0K Jan 31 01:45 .
drwxr-x— 24 root root 4.0K Jan 31 01:40 ..
-rw-r–r– 1 root root 10K Jan 29 00:01 29012012
-rw-r–r– 1 root root 10K Jan 30 00:00 30012012
-rw-r–r– 1 root root 10K Jan 31 00:00 31012012
-rw-r–r– 1 root root 490K Jan 31 01:42 full
-rw-r–r– 1 root root 480K Jan 31 01:44 incremental1
Create incremental backup 2:
[root@centos ~]# touch /mnt/doc/newfile3
[root@centos ~]# echo “new line” >> /mnt/doc/file1
[root@centos ~]# dump -2uf /root/backup/incremental2 /mnt/docDUMP: Date of this level 2 dump: Tue Jan 31 01:47:58 2012
DUMP: Date of last level 1 dump: Tue Jan 31 01:44:55 2012
DUMP: Dumping /dev/sdb1 (/mnt/doc) to /root/backup/incremental2
DUMP: Label: none
DUMP: Writing 10 Kilobyte records
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 472 blocks.
DUMP: Volume 1 started with block 1 at: Tue Jan 31 01:47:59 2012
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: Closing /root/backup/incremental2
DUMP: Volume 1 completed at: Tue Jan 31 01:47:59 2012
DUMP: Volume 1 480 blocks (0.47MB)
DUMP: 480 blocks (0.47MB) on 1 volume(s)
DUMP: finished in less than a second
DUMP: Date of this level 2 dump: Tue Jan 31 01:47:58 2012
DUMP: Date this dump completed: Tue Jan 31 01:47:59 2012
DUMP: Average transfer rate: 0 kB/s
DUMP: DUMP IS DONE[root@centos ~]# ls -alh /root/backup/
total 1.6M
drwxr-xr-x 2 root root 4.0K Jan 31 01:47 .
drwxr-x— 24 root root 4.0K Jan 31 01:40 ..
-rw-r–r– 1 root root 10K Jan 29 00:01 29012012
-rw-r–r– 1 root root 10K Jan 30 00:00 30012012
-rw-r–r– 1 root root 10K Jan 31 00:00 31012012
-rw-r–r– 1 root root 490K Jan 31 01:42 full
-rw-r–r– 1 root root 480K Jan 31 01:44 incremental1
-rw-r–r– 1 root root 480K Jan 31 01:47 incremental2
Restore:
[root@centos mnt]# rm -rf /mnt/doc/*
[root@centos mnt]# cd /mnt/doc
[root@centos doc]# ls
[root@centos doc]# restore -rf /root/backup/full
[root@centos doc]# ls
dir1 dir2 dir3 restoresymtable
[root@centos doc]# restore -rf /root/backup/incremental1
[root@centos doc]# ls
dir1 dir2 dir3 file1 file2 restoresymtable
[root@centos doc]# cat file1
[root@centos doc]# restore -rf /root/backup/incremental2
[root@centos doc]# ls
dir1 dir2 dir3 file1 file2 newfile3 restoresymtable
[root@centos doc]# cat file1
new line
[root@centos doc]#
Done.
This lab is done on:
[root@centos ~]# lsb_release -a | grep Description ; echo “Linux kernel: `uname -r`”
Description: CentOS release 5.7 (Final)
Linux kernel: 2.6.18-274.18.1.el5
dongthao
Common backup Linux backup tools – 1
1. CPIO
Full backup:
[root@localhost /]# find /home/ -print | cpio -oF /root/backup/cpiofull
11 blocks
Incremental backup 1:
[root@localhost /]# touch /home/newfile1 /home/newfile2
[root@localhost /]# find /home/ -cnewer /root/backup/cpiofull -print
/home/newfile1
/home/newfile2
[root@localhost /]# find /home/ -cnewer /root/backup/cpiofull -print | cpio -oF /root/backup/cpioinc1
4 blocks
Incremental backup 2:
[root@localhost /]# touch /home/newfile3
[root@localhost /]# touch /home/newfile4
[root@localhost /]# find /home/ -cnewer /root/backup/cpioinc1 -print
/home/newfile4
/home/newfile3
[root@localhost /]# find /home/ -cnewer /root/backup/cpioinc1 -print | cpio -oF /root/backup/cpioinc2
4 blocks
And so on for next incremental backups.
Check our backup files:
[root@localhost /]# cpio -tF /root/backup/cpioinc1 2>/dev/null
home/
home/newfile1
home/newfile2
[root@localhost /]# cpio -tF /root/backup/cpioinc2 2>/dev/null
home/
home/newfile4
home/newfile3
Restore:
Restore Full backup:
[root@localhost /]# rm -rf /home/*
[root@localhost /]# ls /home/
[root@localhost /]# cd /
[root@localhost /]# cpio -iF /root/backup/cpiofull 2>/dev/null
[root@localhost /]# ls home/
user1 user2 user3 user4 users
Restore Incremental backup 1:
[root@localhost /]# cpio -iF /root/backup/cpioinc1 2>/dev/null
[root@localhost /]# ls /home/
newfile1 newfile2 user1 user2 user3 user4 users
Restore Incremental backup 2:
[root@localhost /]# cpio -iF /root/backup/cpioinc2 2>/dev/null
[root@localhost /]# ls home/
newfile1 newfile2 newfile3 newfile4 user1 user2 user3 user4 users
Done.
2. PAX
Create full backup
[root@localhost ~]# pax -wf /root/backup/$(date +%d%m%Y) /home/
[root@localhost ~]# ls -alh /root/backup/
total 200K
drwxr-xr-x 3 root root 4.0K Jan 29 00:59 .
drwxr-x— 20 root root 4.0K Jan 29 00:17 ..
-rw-r–r– 1 root root 40K Jan 29 00:59 29012012
-rw-r–r– 1 root root 5.5K Jan 29 00:42 cpiofull
-rw-r–r– 1 root root 512 Jan 29 00:43 cpioinc1
-rw-r–r– 1 root root 512 Jan 29 00:44 cpioinc2
drwxr-xr-x 7 root root 4.0K Jan 29 00:29 home
-rw-r–r– 1 root root 40K Jan 27 05:21 paxbackup
-rw-r–r– 1 root root 10K Jan 28 00:00 Sat
-rw-r–r– 1 root root 40K Jan 28 00:00 Sat1
Create Incremential backup 1. We’ve done the full backup for the date “29 Jan” so next we will do incremental backup for “30 Jan”. Just set the date to what we want.
[root@localhost ~]# date
Sun Jan 29 00:59:56 ICT 2012[root@localhost ~]# date -s “30 Jan 2012″
Mon Jan 30 00:00:00 ICT 2012
[root@localhost ~]# touch /home/newfile1 /home/newfile2
[root@localhost ~]# pax -T 0000 -wf /root/backup/$(date +%d%m%Y) /home
[root@localhost ~]# ls -alh /root/backup/
total 104K
drwxr-xr-x 2 root root 4.0K Jan 30 00:04 .
drwxr-x— 20 root root 4.0K Jan 29 00:17 ..
-rw-r–r– 1 root root 40K Jan 29 00:59 29012012
-rw-r–r– 1 root root 10K Jan 30 00:01 30012012
-rw-r–r– 1 root root 5.5K Jan 29 00:42 cpiofull
-rw-r–r– 1 root root 512 Jan 29 00:43 cpioinc1
-rw-r–r– 1 root root 512 Jan 29 00:44 cpioinc2
Create Incremential backup 2 for 31 Jan.
[root@localhost ~]# date
Mon Jan 30 00:07:18 ICT 2012
[root@localhost ~]# date -s “31 Jan 2012″
Tue Jan 31 00:00:00 ICT 2012
[root@localhost ~]# touch /home/
newfile1 newfile2 user1/ user2/ user3/ user4/ users/
[root@localhost ~]# touch /home/newfile3
[root@localhost ~]# echo “newline” >> /home/newfile1
[root@localhost ~]# pax -T 0000 -wf /root/backup/$(date +%d%m%Y) /home/
[root@localhost ~]# ls -alh /root/backup/
total 120K
drwxr-xr-x 2 root root 4.0K Jan 31 00:01 .
drwxr-x— 20 root root 4.0K Jan 29 00:17 ..
-rw-r–r– 1 root root 40K Jan 29 00:59 29012012
-rw-r–r– 1 root root 10K Jan 30 00:01 30012012
-rw-r–r– 1 root root 10K Jan 31 00:01 31012012
-rw-r–r– 1 root root 5.5K Jan 29 00:42 cpiofull
-rw-r–r– 1 root root 512 Jan 29 00:43 cpioinc1
-rw-r–r– 1 root root 512 Jan 29 00:44 cpioinc2
Restore. We follow the backup order respectedly.
[root@centos ~]# rm -rf /home/*
[root@centos ~]# pax -rf /root/backup/29012012
[root@centos ~]# ls /home/
user1 user2 user3 user4 users[root@centos ~]# pax -rf /root/backup/30012012
[root@centos ~]# ls /home/
newfile1 newfile2 user1 user2 user3 user4 users
[root@centos ~]# cat /home/newfile1[root@centos ~]# pax -rf /root/backup/31012012
[root@centos ~]# ls /home/
newfile1 newfile2 newfile3 user1 user2 user3 user4 users
[root@centos ~]# cat /home/newfile1
newline
Done.
This lab is done on:
[root@centos ~]# lsb_release -a | grep Description ; echo “Linux kernel: `uname -r`”
Description: CentOS release 5.7 (Final)
Linux kernel: 2.6.18-274.18.1.el5
dongthao
Quota Lab
We have a new hard disk to share data for all users in our company. We need to set quota on that share so that everyone has an equal part.
1. Add HDD: /dev/sdb
2. Create partition
fdisk /dev/sdb -> /dev/sdb1
3. Create filesystem
mkfs.ext3 /dev/sdb1
4. Create mountpoint
mkdir /mnt/share
5. Edit fstab
/dev/sdb1 /mnt/share ext3 defaults,usrquota,grpquota 0 0
6. Mount
mount /mnt/share
7. Create quota database files
quotacheck -cug /mnt/share
quotacheck -vug /mnt/share
8. Enable quota
quotaon /mnt/share
9. Edit quota database
edquota -u user1
10. Test
chmod a+w /mnt/share
11. Manage quota
quota -uv user1
repquota /mnt/share
12. Manage grace period: When user reaches soft quota, grace period will count. After the period, if the user’s soft quota is still exceeded, although he’s still in his hard quota, he will be blocked.
edquota -t
This lab is done on:
[root@centos ~]# lsb_release -a | grep Description ; echo “Linux kernel: `uname -r`”
Description: CentOS release 5.7 (Final)
Linux kernel: 2.6.18-274.18.1.el5
dongthao
After Q8 ISAS
Congrats my students! After 2 months study Linux from scratch, some of them can understand and set up pretty well the core services on Linux: DHCP, DNS, Web Server, WITHOUT any help from myself.




Thảo luận