Nội dung bài viết
Cách tạo Sudo User trên Centos 7
Giới thiệu về lệnh Sudo
Khi bạn quản trị một VPS hoặc Server, bạn thường muốn hệ thống của mình được bảo mật hơn. Bạn sẽ dùng lệnh Sudo thay cho lệnh chạy trực tiếp bằng user root để quản trị. Lệnh sudo cung cấp một cơ chế để cấp quyền root. Sau đay mình sẽ hướng dẫn các bạn dễ nhất để tạo một user mới với quyền truy cập sudo trên CentOS, mà không cần phải sửa đổi file sudoers của server. Nếu bạn muốn cấu hình sudo cho một người dùng hiện có hãy cùng theo dõi bài viết này nhé.
Các bước tạo một Sudo User mới:
Log in vào your server với tư cách root
user.
ssh root@server_ip_address
Dùng lệnh adduser
để thêm một user mới vào hệ thống..
adduser username
Dùng lệnh passwd
để câp nhật mật khẩu cho user vừa tạo.
passwd username
Đặt một mật khẩu mạnh và xác nhận lại:
Set password prompts:Changing password for user username. New password: Retype new password: passwd: all authentication tokens updated successfully.
Dùng lệnh usermod
để thêm user vừa tạo vào nhóm wheel
.
usermod -aG wheel username
Trên Centos 7, mặc định các user trong wheel
được cấp quyền sudo.
Kiểm tra truy cập sudo trên user mới:
Dùng lệnh su
để chuyển tới user mới được tạo :
su - username
Gõ sudo phía trước lệnh bạn muốn chạy với quyền superuser:
sudo command_to_run
Ví dụ, lệnh hiển thị các thành phần của thư mục /root
, vốn chỉ có thể thực hiện với root user:
sudo ls -la /root
Lần đầu tiên sử dụng lệnh sudo
, bạn sẽ phải nhập vào mật khẩu của user:
Output:[sudo] password for username:
Nếu user của bạn đã được thêm vào nhóm wheel
ở trên và bạn nhập đúng mật khẩu, lệnh của bạn sẽ được thực thi với quyền root.
MySQL là một hệ thống quản lý cơ sở dữ liệu phổ biến được dùng cho các trang web và các ứng dụng máy chủ. Tuy nhiên, MySQL không còn trong kho CentOS 7 và MariaDB đã trở thành hệ thống cơ sở dữ liệu mặc định cung cấp. MariaDB được coi là một sự thay thế drop-in cho MySQL.
Nếu bạn vẫn thích MySQL, hướng dẫn này sẽ giới thiệu cách cài đặt, cấu hình và quản lý nó trên một máy chủ chạy CentOS 7.
Trước khi bắt đầu
Kiểm tra hostname bằng câu lệnh sau:
hostname hostname -f
Cập nhật hệ thống của bạn:
yum update
Cài đặt MySQL
MySQL phải được cài đặt từ kho lưu trữ . Tải về và thêm kho lưu trữ, sau đó cập nhật.
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update
Cài đặt MySQL như bình thường và bắt đầu dịch vụ.
yum install mysql-server systemctl start mysqld
MySQL sẽ bind với localhost (127.0.0.1) theo mặc định.
Chú ý: Cho phép truy cập không giới hạn đến MySQL trên một IP public không được khuyến khích nhưng bạn có thể thay đổi địa chỉ nó lắng nghe trên bằng cách thay đổi các tham số bind-address trong /etc/my.cnf. Nếu bạn quyết định để bind MySQL đến IP public của bạn, bạn nên thực hiện các quy tắc tường lửa mà chỉ cho phép các kết nối từ các địa chỉ IP cụ thể.
Harden MySQL Server
Chạy script mysql_secure_installation để giải quyết một số vấn đề bảo mật trong một cài đặt MySQL mặc định.
mysql_secure_installation
Bạn sẽ được cung cấp các lựa chọn để thay đổi mật khẩu root MySQL, loại bỏ tài khoản người dùng ẩn danh, vô hiệu hóa đăng nhập root bên ngoài của localhost, và loại bỏ các cơ sở dữ liệu thử nghiệm. Chúng tôi đề nghị bạn trả lời có (yes) cho những tùy chọn. Bạn có thể đọc thêm về các kịch bản trong trong MySQL Reference Manual.
Sử dụng MySQL
Công cụ tiêu chuẩn để tương tác với MySQL là mysql client đã được cài đặt đồng thời với gói mysql-server. Các MySQL client được sử dụng thông qua một cửa sổ terminal.
Để đăng nhập vào MySQL như là user root:
mysql -u root -p
Khi được nhắc, nhập mật khẩu root bạn chỉ định khi chạy script mysql_secure_installation.
Sau đó bạn sẽ được trình bày với một tiêu đề chào đón và cửa sổ MySQL như sau:
mysql>
Để tạo ra một danh sách các lệnh cho cửa sổ MySQL, nhập \h. Sau đó bạn sẽ thấy:
List of all MySQL commands: Note that all text commands must be first on line and end with ';' ? (\?) Synonym for `help'. clear (\c) Clear command. connect (\r) Reconnect to the server. Optional arguments are db and host. delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter. edit (\e) Edit command with $EDITOR. ego (\G) Send command to mysql server, display result vertically. exit (\q) Exit mysql. Same as quit. go (\g) Send command to mysql server. help (\h) Display this help. nopager (\n) Disable pager, print to stdout. notee (\t) Don't write into outfile. pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. print (\p) Print current command. prompt (\R) Change your mysql prompt. quit (\q) Quit mysql. rehash (\#) Rebuild completion hash. source (\.) Execute an SQL script file. Takes a file name as an argument. status (\s) Get status information from the server. system (\!) Execute a system shell command. tee (\T) Set outfile [to_outfile]. Append everything into given outfile. use (\u) Use another database. Takes database name as argument. charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets. warnings (\W) Show warnings after every statement. nowarning (\w) Don't show warnings after every statement. For server side help, type 'help contents' mysql>
Tạo một user MySQL và cơ sở dữ liệu (database)
Trong ví dụ dưới đây, TestDB là tên của cơ sở dữ liệu, testuser là tên của user và pasword là mật khẩu của user.
create database testdb; create user 'testuser'@'localhost' identified by 'password'; grant all on testdb.* to 'testuser' identified by 'password';
Bạn có thể rút ngắn quá trình này bằng cách tạo ra user đồng thời thực hiện việc chỉ định quyền cho user đối với cơ sở dữ liệu:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
Sau đó thoát khỏi MySQL.
exit
Tạo một table thử nghiệm
Đăng nhập lại như testuser.
mysql -u testuser -p
Tạo một table thử nghiệm tên là customers.
use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Câu lệnh trên sẽ thực hiện việc tạo ra một table với một trường customer_id với giá trị sử dụng kiểu dữ liệu INT (tự động tăng cho các record mới, được sử dụng làm khóa chính), đồng thời tạo ra hai trường dùng để lưu trữ tên của khách hàng.
Sau đó thoát khỏi MySQL.
exit
Đặt lại mật khẩu root MySQL
Nếu bạn quên mật khẩu root MySQL của bạn, nó có thể được đặt lại.
Dừng máy chủ MySQL hiện tại, sau đó khởi động lại nó với một lựa chọn để không yêu cầu mật khẩu.
systemctl stop mysqld mysqld_safe --skip-grant-tables &
Kết nối đến máy chủ MySQLvới tài khoản root MySQL.
mysql -u root
Sử dụng các lệnh sau để thiết lập lại mật khẩu root.
use mysql; update user SET PASSWORD=PASSWORD("password") WHERE USER='root'; flush privileges; exit
Sau đó khởi động lại MySQL.
systemctl start mysqld